Now the organisation unit parameter for methods:

- getMessagesByPersonID
    - getMessagesByUID
    - getSentMessagesByPerson
    - getCountUnreadMessages
of controller system/Message must be the root of the organisation unit tree
This commit is contained in:
Paolo
2017-09-20 11:33:41 +02:00
parent a456c0838d
commit 1d1ca17dc1
3 changed files with 60 additions and 8 deletions
@@ -32,7 +32,7 @@ class Message extends APIv1_Controller
public function getMessagesByPersonID()
{
$person_id = $this->get('person_id');
$oe_kurzbz = $this->get('oe_kurzbz'); // prestudent organisation unit
$oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit
$all = $this->get('all');
if (isset($person_id))
@@ -53,7 +53,7 @@ class Message extends APIv1_Controller
public function getMessagesByUID()
{
$uid = $this->get('uid');
$oe_kurzbz = $this->get('oe_kurzbz'); // prestudent organisation unit
$oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit
$all = $this->get('all');
if (isset($uid))
@@ -93,7 +93,7 @@ class Message extends APIv1_Controller
public function getSentMessagesByPerson()
{
$person_id = $this->get('person_id');
$oe_kurzbz = $this->get('oe_kurzbz'); // prestudent organisation unit
$oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit
$all = $this->get('all');
if (isset($person_id))
@@ -114,7 +114,7 @@ class Message extends APIv1_Controller
public function getCountUnreadMessages()
{
$person_id = $this->get('person_id');
$oe_kurzbz = $this->get('oe_kurzbz'); // prestudent organisation unit
$oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit
if (isset($person_id))
{
+14 -1
View File
@@ -67,7 +67,20 @@ class Message_model extends DB_Model
if ($oe_kurzbz != null)
{
array_push($parametersArray, $oe_kurzbz);
$sql .= ' AND m.oe_kurzbz = ?';
$sql .= ' AND m.oe_kurzbz IN (
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
AND o.oe_kurzbz = ?
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
FROM organizations orgs
)';
}
return $this->execQuery($sql, $parametersArray);
+42 -3
View File
@@ -141,7 +141,20 @@ class Recipient_model extends DB_Model
if ($oe_kurzbz != null)
{
array_push($parametersArray, $oe_kurzbz);
$sql .= ' AND m.oe_kurzbz = ?';
$sql .= ' AND m.oe_kurzbz IN (
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
AND o.oe_kurzbz = ?
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
FROM organizations orgs
)';
}
$sql .= ' ORDER BY r.message_id DESC, s.status DESC';
@@ -207,7 +220,20 @@ class Recipient_model extends DB_Model
if ($oe_kurzbz != null)
{
array_push($parametersArray, $oe_kurzbz);
$sql .= ' AND m.oe_kurzbz = ?';
$sql .= ' AND m.oe_kurzbz IN (
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
AND o.oe_kurzbz = ?
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
FROM organizations orgs
)';
}
return $this->execQuery($sql, $parametersArray);
@@ -315,7 +341,20 @@ class Recipient_model extends DB_Model
if ($oe_kurzbz != null)
{
array_push($parametersArray, $oe_kurzbz);
$sql .= ' AND m.oe_kurzbz = ?';
$sql .= ' AND m.oe_kurzbz IN (
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
AND o.oe_kurzbz = ?
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
FROM organizations orgs
)';
}
return $this->execQuery($sql, $parametersArray);