- Vorlage widget now works with oe_kurzbz

- Added method getByPersonId to model Benutzerfunktion_model
- Added method treeSearchEntire to library OrganisationseinheitLib
- Added method getOneLevelAlias to model Organisationseinheit_model
This commit is contained in:
Paolo
2017-05-23 17:00:03 +02:00
parent 2286d47b69
commit b840352377
6 changed files with 44 additions and 34 deletions
+11 -1
View File
@@ -65,11 +65,21 @@ class Messages extends VileSci_Controller
array_shift($variables->retval); // Remove person_id
array_shift($variables->retval); // Remove prestudent_id
//
$oe_kurzbz = null;
$this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
$benutzerResult = $this->BenutzerfunktionModel->getByPersonId($sender_id);
if (hasData($benutzerResult))
{
$oe_kurzbz = $benutzerResult->retval[0]->oe_kurzbz;
}
$data = array (
'sender_id' => $sender_id,
'receivers' => $prestudent->retval,
'message' => $msg,
'variables' => $variablesArray
'variables' => $variablesArray,
'oe_kurzbz' => $oe_kurzbz
);
$v = $this->load->view('system/messageWrite', $data);
@@ -63,7 +63,7 @@ class OrganisationseinheitLib
return $result;
}
public function treeSearchEntire($table, $alias, $fields, $where, $orderby, $oe_kurzbz, $entireTree = false)
public function treeSearchEntire($table, $alias, $fields, $where, $orderby, $oe_kurzbz)
{
$select = "";
if (is_array($fields))
@@ -82,30 +82,22 @@ class OrganisationseinheitLib
$select = $fields;
}
$result = $this->ci->OrganisationseinheitModel->getOneLevel2($table, $alias, $select, $where, $orderby, $oe_kurzbz);
$result = $this->ci->OrganisationseinheitModel->getOneLevelAlias($table, $alias, $select, $where, $orderby, $oe_kurzbz);
if (hasData($result))
{
if ($result->retval[0]->_pk != null && $result->retval[0]->_ppk != null)
if ($result->retval[0]->_pk != null && $result->retval[0]->_ppk != null && $result->retval[0]->_jtpk != null)
{
$tmpResult = error();
$tmpResult = $this->treeSearchEntire($table, $alias, $select, $where, $orderby, $result->retval[0]->_ppk);
if (($entireTree == false && $result->retval[0]->oe_kurzbz == null) || $entireTree === true)
if (hasData($tmpResult) && $tmpResult->retval[0]->_pk != null && $tmpResult->retval[0]->_ppk != null && $tmpResult->retval[0]->_jtpk != null)
{
$tmpResult = $this->treeSearchEntire($table, $alias, $select, $where, $orderby, $result->retval[0]->_ppk, $entireTree);
}
if ($entireTree === true)
{
if (hasData($tmpResult))
{
$result->retval = array_merge($result->retval, $tmpResult->retval);
}
$result->retval = array_merge($result->retval, $tmpResult->retval);
}
}
else if ($result->retval[0]->_pk == null && $result->retval[0]->_ppk != null)
else if ($result->retval[0]->_ppk != null)
{
$result = $this->treeSearchEntire($table, $alias, $select, $where, $orderby, $result->retval[0]->_ppk, $entireTree);
$result = $this->treeSearchEntire($table, $alias, $select, $where, $orderby, $result->retval[0]->_ppk);
}
}
@@ -84,25 +84,25 @@ class Organisationseinheit_model extends DB_Model
return $this->execQuery($query, array($oe_kurzbz));
}
public function getOneLevel2($table, $alias, $fields, $where, $orderby, $oe_kurzbz)
public function getOneLevelAlias($table, $alias, $fields, $where, $orderby, $oe_kurzbz)
{
$query = "WITH RECURSIVE organizations(_pk, _ppk) AS
(
SELECT o.oe_kurzbz, o.oe_parent_kurzbz
FROM public.tbl_organisationseinheit o
WHERE o.oe_parent_kurzbz IS NULL
UNION ALL
WHERE o.oe_parent_kurzbz IS NULL
UNION ALL
SELECT o.oe_kurzbz, o.oe_parent_kurzbz
FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk)
)
SELECT orgs._pk, orgs._ppk, _joined_table.*
FROM organizations orgs LEFT JOIN (
SELECT %s.oe_kurzbz as _pk, %s
FROM %s
WHERE %s
) _joined_table ON (orgs._pk = _joined_table._pk)
WHERE orgs._pk = ?
ORDER BY %s";
FROM organizations orgs LEFT JOIN (
SELECT %s.oe_kurzbz as _jtpk, %s
FROM %s
WHERE %s
) _joined_table ON (orgs._pk = _joined_table._jtpk)
WHERE orgs._pk = ?
ORDER BY %s";
$query = sprintf($query, $alias, $fields, $table, $where, $orderby);
@@ -1,7 +1,7 @@
<?php
class Benutzerfunktion_model extends DB_Model
{
/**
* Constructor
*/
@@ -11,4 +11,15 @@ class Benutzerfunktion_model extends DB_Model
$this->dbTable = 'public.tbl_benutzerfunktion';
$this->pk = 'benutzerfunktion_id';
}
}
/**
*
*/
public function getByPersonId($person_id)
{
// Join with the table
$this->addJoin('public.tbl_benutzer', 'uid');
return $this->loadWhere(array('person_id' => $person_id));
}
}
+1 -1
View File
@@ -93,7 +93,7 @@
<?php
echo $this->widgetlib->widget(
'Vorlage_widget',
null,
array('oe_kurzbz' => $oe_kurzbz),
array('name' => 'vorlage', 'id' => 'vorlageDnD')
);
?>
+1 -4
View File
@@ -19,12 +19,9 @@ class Vorlage_widget extends DropdownWidget
AND templates.text IS NOT NULL
AND templates.mimetype = \'text/html\'',
"description ASC",
'eas',
true
$widgetData['oe_kurzbz']
);
array_pop($vorlage->retval);
$this->setElementsArray(
$vorlage,
true,