From ad390b94fa57fd44850c62aa54d9f2f5e8b89da0 Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Wed, 4 Dec 2013 12:28:51 -0400 Subject: [PATCH 1/5] Se la clase Assignee.php, para obtener, asignar, desasignar a usuarios, usuarios adhoc, grupos o grupos adhoc en una tarea --- workflow/engine/src/BusinessModel/Task.php | 664 ++++++++++++++++++ .../Project/Activity/Assignee.php | 236 +++++++ workflow/engine/src/Services/api.ini | 1 + 3 files changed, 901 insertions(+) create mode 100644 workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Assignee.php diff --git a/workflow/engine/src/BusinessModel/Task.php b/workflow/engine/src/BusinessModel/Task.php index 5f61f4997..3b9d4f6d2 100644 --- a/workflow/engine/src/BusinessModel/Task.php +++ b/workflow/engine/src/BusinessModel/Task.php @@ -543,5 +543,669 @@ class Task } } + + + /** + * Return a assignee list of an activity + * + * @param string $sProcessUID + * @param string $sTaskUID + * + * return array + * + * @access public + */ + public function getTaskAssignees($sProcessUID, $sTaskUID) + { + try { + $aUsers = array(); + $sDelimiter = \DBAdapter::getStringDelimiter(); + $oCriteria = new \Criteria('workflow'); + $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE'); + $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); + $oCriteria->addAlias('C', 'CONTENT'); + + $aConditions = array(); + $aConditions[] = array(\TaskUserPeer::USR_UID, 'C.CON_ID' ); + $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter ); + $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter ); + $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN); + $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\TaskUserPeer::TU_TYPE, 1); + $oCriteria->add(\TaskUserPeer::TU_RELATION, 2); + $oDataset = \TaskUserPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + $c = 0; + while ($aRow = $oDataset->getRow()) { + $c++; + $oGroup = new \Groupwf(); + $aFields = $oGroup->load($aRow['USR_UID']); + if ($aFields['GRP_STATUS'] == 'ACTIVE') { + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER'); + $oCriteria->add(\GroupUserPeer::GRP_UID, $aRow['USR_UID']); + $oDataset2 = \GroupUserPeer::doSelectRS($oCriteria); + $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset2->next(); + $aRow2 = $oDataset2->getRow(); + } else { + $aRow2['GROUP_INACTIVE'] = '(' . \G::LoadTranslation('ID_GROUP_INACTIVE') . ')'; + } + $aUsers[] = array('aas_uid' => $aRow['USR_UID'], + 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . + ' (' . $aRow2['MEMBERS_NUMBER'] . + ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + 'aas_lastname' => "", + 'aas_username' => "", + 'aas_type' => "group"); + $oDataset->next(); + } + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL); + $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); + $oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); + $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\TaskUserPeer::TU_TYPE, 1); + $oCriteria->add(\TaskUserPeer::TU_RELATION, 1); + $oDataset = \TaskUserPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + while ($aRow = $oDataset->getRow()) { + $aUsers[] = array('aas_uid' => $aRow['USR_UID'], + 'aas_name' => $aRow['USR_FIRSTNAME'], + 'aas_lastname' => $aRow['USR_LASTNAME'], + 'aas_username' => $aRow['USR_USERNAME'], + 'aas_type' => "user" ); + $oDataset->next(); + } + return $aUsers; + } catch (Exception $e) { + throw $e; + } + } + + /** + * Return the available users and users groups to assigned to an activity + * + * @param string $sProcessUID + * @param string $sTaskUID + * + * return array + * + * @access public + */ + + public function getTaskAvailableAssignee($sProcessUID, $sTaskUID) + { + try { + $iType = 1; + $aUsers = array(); + $oTasks = new \Tasks(); + $aAux = $oTasks->getGroupsOfTask($sTaskUID, $iType); + $aUIDS1 = array(); + $aUIDS2 = array(); + foreach ($aAux as $aGroup) { + $aUIDS1[] = $aGroup['GRP_UID']; + } + $aAux = $oTasks->getUsersOfTask($sTaskUID, $iType); + foreach ($aAux as $aUser) { + $aUIDS2[] = $aUser['USR_UID']; + } + $aUsers = array(); + $sDelimiter = \DBAdapter::getStringDelimiter(); + $groups = new \Groupwf(); + $start = ''; + $limit = ''; + $filter = ''; + $result = $groups->getAllGroup($start, $limit, $filter); + $c = 0; + foreach ($result['rows'] as $results) { + if (!in_array($results['GRP_UID'], $aUIDS1)) { + $c++; + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER'); + $oCriteria->add(\GroupUserPeer::GRP_UID, $results['GRP_UID']); + $oDataset2 = \GroupUserPeer::doSelectRS($oCriteria); + $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset2->next(); + $aRow2 = $oDataset2->getRow(); + $aUsers[] = array('aas_uid' => $results['GRP_UID'], + 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] . + ' (' . $aRow2['MEMBERS_NUMBER'] . + ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + 'aas_lastname' => "", + 'aas_username' => "", + 'aas_type' => "group" ); + } + } + $sDelimiter = \DBAdapter::getStringDelimiter(); + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn(\UsersPeer::USR_UID); + $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL); + $oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE'); + $oCriteria->add(\UsersPeer::USR_UID, $aUIDS2, \Criteria::NOT_IN); + $oDataset = \UsersPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + while ($aRow = $oDataset->getRow()) { + $aUsers[] = array('aas_uid' => $aRow['USR_UID'], + 'aas_name' => $aRow['USR_FIRSTNAME'], + 'aas_lastname' => $aRow['USR_LASTNAME'], + 'aas_username' => $aRow['USR_USERNAME'], + 'aas_type' => "user" ); + $oDataset->next(); + } + return $aUsers; + } catch (Exception $e) { + throw $e; + } + } + + /** + * Return a single user or group assigned to an activity + * + * @param string $sProcessUID + * @param string $sTaskUID + * @param string $sAssigneeUID + * + * return array + * + * @access public + */ + public function getTaskAssignee($sProcessUID, $sTaskUID, $sAssigneeUID) + { + try { + $iType = 1; + $aUsers = array(); + $sDelimiter = \DBAdapter::getStringDelimiter(); + $oCriteria = new \Criteria('workflow'); + $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE'); + $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); + $oCriteria->addAlias('C', 'CONTENT'); + + $aConditions = array(); + $aConditions[] = array(\TaskUserPeer::USR_UID, 'C.CON_ID' ); + $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter ); + $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter ); + $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN); + $oCriteria->add(\TaskUserPeer::USR_UID, $sAssigneeUID); + $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\TaskUserPeer::TU_TYPE, $iType); + $oCriteria->add(\TaskUserPeer::TU_RELATION, 2); + $oDataset = \TaskUserPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + $c = 0; + while ($aRow = $oDataset->getRow()) { + $c++; + $oGroup = new \Groupwf(); + $aFields = $oGroup->load($aRow['USR_UID']); + if ($aFields['GRP_STATUS'] == 'ACTIVE') { + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER'); + $oCriteria->add(\GroupUserPeer::GRP_UID, $aRow['USR_UID']); + $oDataset2 = \GroupUserPeer::doSelectRS($oCriteria); + $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset2->next(); + $aRow2 = $oDataset2->getRow(); + } else { + $aRow2['GROUP_INACTIVE'] = '(' . \G::LoadTranslation('ID_GROUP_INACTIVE') . ')'; + } + $aUsers = array('aas_uid' => $aRow['USR_UID'], + 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . + ' (' . $aRow2['MEMBERS_NUMBER'] . + ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + 'aas_lastname' => "", + 'aas_username' => "", + 'aas_type' => "group" ); + $oDataset->next(); + } + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL); + $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); + $oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); + $oCriteria->add(\TaskUserPeer::USR_UID, $sAssigneeUID); + $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\TaskUserPeer::TU_TYPE, $iType); + $oCriteria->add(\TaskUserPeer::TU_RELATION, 1); + $oDataset = \TaskUserPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + while ($aRow = $oDataset->getRow()) { + $aUsers = array('aas_uid' => $aRow['USR_UID'], + 'aas_name' => $aRow['USR_FIRSTNAME'], + 'aas_lastname' => $aRow['USR_LASTNAME'], + 'aas_username' => $aRow['USR_USERNAME'], + 'aas_type' => "user" ); + $oDataset->next(); + } + return $aUsers; + } catch (Exception $e) { + throw $e; + } + } + + + /** + * Assign a user or group to an activity + * + * @param string $sProcessUID + * @param string $sTaskUID + * @param string $sAssigneeUID + * @param int $sRelation + * + * return array + * + * @access public + */ + public function postTaskAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $sRelation) + { + try { + $iType = 1; + $oTaskUser = new \TaskUser(); + if ($sRelation == 1) { + $oTaskUser->create(array('TAS_UID' => $sTaskUID, + 'USR_UID' => $sAssigneeUID, + 'TU_TYPE' => $iType, + 'TU_RELATION' => $sRelation)); + return array('aas_uid' => $sAssigneeUID, + 'aas_type' => "user"); + } else { + $oTaskUser->create(array('TAS_UID' => $sTaskUID, + 'USR_UID' => $sAssigneeUID, + 'TU_TYPE' => $iType, + 'TU_RELATION' => $sRelation)); + return array('aas_uid' => $sAssigneeUID, + 'aas_type' => "group"); + } + } catch (Exception $e) { + throw $e; + } + } + + /** + * Remove a assignee of an activity + * + * @param string $sProcessUID + * @param string $sTaskUID + * @param string $sAssigneeUID + * @param int $sRelation + * + * @access public + */ + public function deleteTaskAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $sRelation) + { + try { + $iType = 1; + $oTaskUser = new \TaskUser(); + + if ($sRelation == 1) { + $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); + } else { + $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); + } + + + } catch (Exception $e) { + throw $e; + } + + } + + /** + * Return a adhoc assignee list of an activity + * + * @param string $sProcessUID + * @param string $sTaskUID + * + * return array + * + * @access public + */ + public function getTaskAdhocAssignees($sProcessUID, $sTaskUID) + { + try { + $aUsers = array(); + $sDelimiter = \DBAdapter::getStringDelimiter(); + $oCriteria = new \Criteria('workflow'); + $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE'); + $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); + $oCriteria->addAlias('C', 'CONTENT'); + + $aConditions = array(); + $aConditions[] = array(\TaskUserPeer::USR_UID, 'C.CON_ID' ); + $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter ); + $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter ); + $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN); + $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\TaskUserPeer::TU_TYPE, 2); + $oCriteria->add(\TaskUserPeer::TU_RELATION, 2); + $oDataset = \TaskUserPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + $c = 0; + while ($aRow = $oDataset->getRow()) { + $c++; + $oGroup = new \Groupwf(); + $aFields = $oGroup->load($aRow['USR_UID']); + if ($aFields['GRP_STATUS'] == 'ACTIVE') { + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER'); + $oCriteria->add(\GroupUserPeer::GRP_UID, $aRow['USR_UID']); + $oDataset2 = \GroupUserPeer::doSelectRS($oCriteria); + $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset2->next(); + $aRow2 = $oDataset2->getRow(); + } else { + $aRow2['GROUP_INACTIVE'] = '(' . \G::LoadTranslation('ID_GROUP_INACTIVE') . ')'; + } + $aUsers[] = array('aas_uid' => $aRow['USR_UID'], + 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . + ' (' . $aRow2['MEMBERS_NUMBER'] . + ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + 'aas_lastname' => "", + 'aas_username' => "", + 'aas_type' => "group"); + $oDataset->next(); + } + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL); + $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); + $oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); + $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\TaskUserPeer::TU_TYPE, 2); + $oCriteria->add(\TaskUserPeer::TU_RELATION, 1); + $oDataset = \TaskUserPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + while ($aRow = $oDataset->getRow()) { + $aUsers[] = array('aas_uid' => $aRow['USR_UID'], + 'aas_name' => $aRow['USR_FIRSTNAME'], + 'aas_lastname' => $aRow['USR_LASTNAME'], + 'aas_username' => $aRow['USR_USERNAME'], + 'aas_type' => "user" ); + $oDataset->next(); + } + return $aUsers; + } catch (Exception $e) { + throw $e; + } + } + + /** + * Return the available adhoc users and users groups to assigned to an activity + * + * @param string $sProcessUID + * @param string $sTaskUID + * + * return array + * + * @access public + */ + + public function getTaskAvailableAdhocAssignee($sProcessUID, $sTaskUID) + { + try { + $iType = 2; + $aUsers = array(); + $oTasks = new \Tasks(); + $aAux = $oTasks->getGroupsOfTask($sTaskUID, $iType); + $aUIDS1 = array(); + $aUIDS2 = array(); + foreach ($aAux as $aGroup) { + $aUIDS1[] = $aGroup['GRP_UID']; + } + $aAux = $oTasks->getUsersOfTask($sTaskUID, $iType); + foreach ($aAux as $aUser) { + $aUIDS2[] = $aUser['USR_UID']; + } + $aUsers = array(); + $sDelimiter = \DBAdapter::getStringDelimiter(); + $groups = new \Groupwf(); + $start = ''; + $limit = ''; + $filter = ''; + $result = $groups->getAllGroup($start, $limit, $filter); + $c = 0; + foreach ($result['rows'] as $results) { + if (!in_array($results['GRP_UID'], $aUIDS1)) { + $c++; + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER'); + $oCriteria->add(\GroupUserPeer::GRP_UID, $results['GRP_UID']); + $oDataset2 = \GroupUserPeer::doSelectRS($oCriteria); + $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset2->next(); + $aRow2 = $oDataset2->getRow(); + $aUsers[] = array('aas_uid' => $results['GRP_UID'], + 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] . + ' (' . $aRow2['MEMBERS_NUMBER'] . + ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + 'aas_lastname' => "", + 'aas_username' => "", + 'aas_type' => "group" ); + } + } + $sDelimiter = \DBAdapter::getStringDelimiter(); + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn(\UsersPeer::USR_UID); + $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL); + $oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE'); + $oCriteria->add(\UsersPeer::USR_UID, $aUIDS2, \Criteria::NOT_IN); + $oDataset = \UsersPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + while ($aRow = $oDataset->getRow()) { + $aUsers[] = array('aas_uid' => $aRow['USR_UID'], + 'aas_name' => $aRow['USR_FIRSTNAME'], + 'aas_lastname' => $aRow['USR_LASTNAME'], + 'aas_username' => $aRow['USR_USERNAME'], + 'aas_type' => "user" ); + $oDataset->next(); + } + return $aUsers; + } catch (Exception $e) { + throw $e; + } + } + + /** + * Return a single Adhoc user or group assigned to an activity + * + * @param string $sProcessUID + * @param string $sTaskUID + * @param string $sAssigneeUID + * + * return array + * + * @access public + */ + public function getTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID) + { + try { + $iType = 2; + $aUsers = array(); + $sDelimiter = \DBAdapter::getStringDelimiter(); + $oCriteria = new \Criteria('workflow' ); + $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE'); + $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); + $oCriteria->addAlias('C', 'CONTENT'); + + $aConditions = array(); + $aConditions[] = array(\TaskUserPeer::USR_UID, 'C.CON_ID' ); + $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter ); + $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter ); + $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN); + $oCriteria->add(\TaskUserPeer::USR_UID, $sAssigneeUID); + $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\TaskUserPeer::TU_TYPE, $iType); + $oCriteria->add(\TaskUserPeer::TU_RELATION, 2); + $oDataset = \TaskUserPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + $c = 0; + while ($aRow = $oDataset->getRow()) { + $c++; + $oGroup = new \Groupwf(); + $aFields = $oGroup->load($aRow['USR_UID']); + if ($aFields['GRP_STATUS'] == 'ACTIVE') { + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER'); + $oCriteria->add(\GroupUserPeer::GRP_UID, $aRow['USR_UID']); + $oDataset2 = \GroupUserPeer::doSelectRS($oCriteria); + $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset2->next(); + $aRow2 = $oDataset2->getRow(); + } else { + $aRow2['GROUP_INACTIVE'] = '(' . \G::LoadTranslation('ID_GROUP_INACTIVE') . ')'; + } + $aUsers = array('aas_uid' => $aRow['USR_UID'], + 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . + ' (' . $aRow2['MEMBERS_NUMBER'] . + ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + 'aas_lastname' => "", + 'aas_username' => "", + 'aas_type' => "group" ); + $oDataset->next(); + } + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); + $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL); + $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); + $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); + $oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); + $oCriteria->add(\TaskUserPeer::USR_UID, $sAssigneeUID); + $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\TaskUserPeer::TU_TYPE, $iType); + $oCriteria->add(\TaskUserPeer::TU_RELATION, 1); + $oDataset = \TaskUserPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + while ($aRow = $oDataset->getRow()) { + $aUsers = array('aas_uid' => $aRow['USR_UID'], + 'aas_name' => $aRow['USR_FIRSTNAME'], + 'aas_lastname' => $aRow['USR_LASTNAME'], + 'aas_username' => $aRow['USR_USERNAME'], + 'aas_type' => "user" ); + $oDataset->next(); + } + return $aUsers; + } catch (Exception $e) { + throw $e; + } + } + + + /** + * Assign a Adhoc user or group to an activity + * + * @param string $sProcessUID + * @param string $sTaskUID + * @param string $sAssigneeUID + * @param int $sRelation + * + * return array + * + * @access public + */ + public function postTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $sRelation) + { + try { + $iType = 2; + $oTaskUser = new \TaskUser(); + if ($sRelation == 1) { + $oTaskUser->create(array('TAS_UID' => $sTaskUID, + 'USR_UID' => $sAssigneeUID, + 'TU_TYPE' => $iType, + 'TU_RELATION' => $sRelation)); + return array('aas_uid' => $sAssigneeUID, + 'aas_type' => "user"); + } else { + $oTaskUser->create(array('TAS_UID' => $sTaskUID, + 'USR_UID' => $sAssigneeUID, + 'TU_TYPE' => $iType, + 'TU_RELATION' => $sRelation)); + return array('aas_uid' => $sAssigneeUID, + 'aas_type' => "group"); + } + } catch (Exception $e) { + throw $e; + } + } + + /** + * Remove a Adhoc assignee of an activity + * + * @param string $sProcessUID + * @param string $sTaskUID + * @param string $sAssigneeUID + * @param int $sRelation + * + * @access public + */ + public function deleteTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $sRelation) + { + try { + $iType = 2; + $oTaskUser = new \TaskUser(); + + if ($sRelation == 1) { + $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); + } else { + $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); + } + + } catch (Exception $e) { + throw $e; + } + } + } diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Assignee.php b/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Assignee.php new file mode 100644 index 000000000..1d8e7279f --- /dev/null +++ b/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Assignee.php @@ -0,0 +1,236 @@ +getTaskAssignees($prj_uid, $act_uid, $filter, $start, $limit); + + //Response + $response = $arrayData; + } catch (\Exception $e) { + //Response + $response["success"] = false; + $response["message"] = $e->getMessage(); + } + + return $response; + } + + /** + * @url GET /:prj_uid/activity/:act_uid/available-assignee + */ + public function doGetActivityAvailableAssignee($prj_uid, $act_uid, $filter = '', $start = '', $limit = '') + { + $response = array(); + + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->getTaskAvailableAssignee($prj_uid, $act_uid); + + //Response + $response = $arrayData; + } catch (\Exception $e) { + //response + $response["success"] = false; + $response["message"] = $e->getMessage(); + } + + return $response; + } + + /** + * @url GET /:prj_uid/activity/:act_uid/assignee/:aas_uid + */ + public function doGetActivityAssignee($prj_uid, $act_uid, $aas_uid) + { + $response = array(); + + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->getTaskAssignee($prj_uid, $act_uid, $aas_uid); + + //Response + $response = $arrayData; + } catch (\Exception $e) { + //response + $response["success"] = false; + $response["message"] = $e->getMessage(); + } + + return $response; + } + + /** + * @url POST /:prj_uid/activity/:act_uid/assignee + * @status 201 + */ + public function doPostActivityAssignee($prj_uid, $act_uid, $assignee_uid, $tu_relation) + { + $response = array(); + + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->postTaskAssignee($prj_uid, $act_uid, $assignee_uid, $tu_relation); + + //Response + $response ["success"] = true; + $response = $arrayData; + } catch (\Exception $e) { + //response + $response["success"] = false; + $response["message"] = $e->getMessage(); + } + + return $response; + } + + /** + * @url DELETE /:prj_uid/activity/:act_uid/assignee/:aas_uid/relation/:tu_relation + */ + public function doDeleteActivityAssignee($prj_uid, $act_uid, $aas_uid, $tu_relation) + { + $response = array(); + + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->deleteTaskAssignee($prj_uid, $act_uid, $aas_uid, $tu_relation); + + } catch (\Exception $e) { + //response + $response["success"] = false; + $response["message"] = $e->getMessage(); + } + + return $response; + } + + /** + * @url GET /:prj_uid/activity/:act_uid/adhoc-assignee + */ + public function doGetActivityAdhocAssignees($prj_uid, $act_uid, $filter = '', $start = '', $limit = '') + { + $response = array(); + + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->getTaskAdhocAssignees($prj_uid, $act_uid, $filter, $start, $limit); + + //Response + $response = $arrayData; + } catch (\Exception $e) { + //Response + $response["success"] = false; + $response["message"] = $e->getMessage(); + } + + return $response; + } + + /** + * @url GET /:prj_uid/activity/:act_uid/available-adhoc-assignee + */ + public function doGetActivityAvailableAdhocAssignee($prj_uid, $act_uid, $filter = '', $start = '', $limit = '') + { + $response = array(); + + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->getTaskAvailableAdhocAssignee($prj_uid, $act_uid); + + //Response + $response = $arrayData; + } catch (\Exception $e) { + //response + $response["success"] = false; + $response["message"] = $e->getMessage(); + } + + return $response; + } + + /** + * @url GET /:prj_uid/activity/:act_uid/adhoc-assignee/:aas_uid + */ + public function doGetActivityAdhocAssignee($prj_uid, $act_uid, $aas_uid) + { + $response = array(); + + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->getTaskAdhocAssignee($prj_uid, $act_uid, $aas_uid); + + //Response + $response = $arrayData; + } catch (\Exception $e) { + //response + $response["success"] = false; + $response["message"] = $e->getMessage(); + } + + return $response; + } + + /** + * @url POST /:prj_uid/activity/:act_uid/adhoc-assignee + * @status 201 + */ + public function doPostActivityAdhocAssignee($prj_uid, $act_uid, $assignee_uid, $tu_relation) + { + $response = array(); + + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->postTaskAdhocAssignee($prj_uid, $act_uid, $assignee_uid, $tu_relation); + + //Response + $response ["success"] = true; + $response = $arrayData; + } catch (\Exception $e) { + //response + $response["success"] = false; + $response["message"] = $e->getMessage(); + } + + return $response; + } + + /** + * @url DELETE /:prj_uid/activity/:act_uid/adhoc-assignee/:aas_uid/relation/:tu_relation + */ + public function doDeleteActivityAdhocAssignee($prj_uid, $act_uid, $aas_uid, $tu_relation) + { + $response = array(); + + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->deleteTaskAdhocAssignee($prj_uid, $act_uid, $aas_uid, $tu_relation); + + } catch (\Exception $e) { + //response + $response["success"] = false; + $response["message"] = $e->getMessage(); + } + + return $response; + } + +} + diff --git a/workflow/engine/src/Services/api.ini b/workflow/engine/src/Services/api.ini index 2c7f5c67b..d4cae4ed5 100644 --- a/workflow/engine/src/Services/api.ini +++ b/workflow/engine/src/Services/api.ini @@ -15,4 +15,5 @@ debug = 1 [alias: project] activity = "Services\Api\ProcessMaker\Project\Activity" step = "Services\Api\ProcessMaker\Project\Activity\Step" + assignee = "Services\Api\ProcessMaker\Project\Activity\Assignee" From d947096eab10f6f7447521307e44241bff8f9fe3 Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Wed, 4 Dec 2013 12:35:41 -0400 Subject: [PATCH 2/5] Se la clase Assignee.php, para obtener, asignar, desasignar a usuarios, usuarios adhoc, grupos o grupos adhoc en una tarea --- workflow/engine/src/BusinessModel/Task.php | 37 ++++++++++------------ 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/workflow/engine/src/BusinessModel/Task.php b/workflow/engine/src/BusinessModel/Task.php index 3b9d4f6d2..b2e7fd679 100644 --- a/workflow/engine/src/BusinessModel/Task.php +++ b/workflow/engine/src/BusinessModel/Task.php @@ -541,10 +541,8 @@ class Task } catch (Exception $e) { throw $e; } - } - /** * Return a assignee list of an activity * @@ -625,7 +623,7 @@ class Task $aUsers[] = array('aas_uid' => $aRow['USR_UID'], 'aas_name' => $aRow['USR_FIRSTNAME'], 'aas_lastname' => $aRow['USR_LASTNAME'], - 'aas_username' => $aRow['USR_USERNAME'], + 'aas_username' => $aRow['USR_USERNAME'], 'aas_type' => "user" ); $oDataset->next(); } @@ -684,7 +682,7 @@ class Task 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] . ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . - ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", 'aas_type' => "group" ); @@ -773,7 +771,7 @@ class Task 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . - ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", 'aas_type' => "group" ); @@ -810,7 +808,6 @@ class Task } } - /** * Assign a user or group to an activity * @@ -829,14 +826,14 @@ class Task $iType = 1; $oTaskUser = new \TaskUser(); if ($sRelation == 1) { - $oTaskUser->create(array('TAS_UID' => $sTaskUID, + $oTaskUser->create(array('TAS_UID' => $sTaskUID, 'USR_UID' => $sAssigneeUID, 'TU_TYPE' => $iType, 'TU_RELATION' => $sRelation)); return array('aas_uid' => $sAssigneeUID, 'aas_type' => "user"); } else { - $oTaskUser->create(array('TAS_UID' => $sTaskUID, + $oTaskUser->create(array('TAS_UID' => $sTaskUID, 'USR_UID' => $sAssigneeUID, 'TU_TYPE' => $iType, 'TU_RELATION' => $sRelation)); @@ -863,18 +860,16 @@ class Task try { $iType = 1; $oTaskUser = new \TaskUser(); - + if ($sRelation == 1) { $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); } else { $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); } - } catch (Exception $e) { throw $e; } - } /** @@ -957,7 +952,7 @@ class Task $aUsers[] = array('aas_uid' => $aRow['USR_UID'], 'aas_name' => $aRow['USR_FIRSTNAME'], 'aas_lastname' => $aRow['USR_LASTNAME'], - 'aas_username' => $aRow['USR_USERNAME'], + 'aas_username' => $aRow['USR_USERNAME'], 'aas_type' => "user" ); $oDataset->next(); } @@ -1016,7 +1011,7 @@ class Task 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] . ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . - ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", 'aas_type' => "group" ); @@ -1050,7 +1045,7 @@ class Task /** * Return a single Adhoc user or group assigned to an activity - * + * * @param string $sProcessUID * @param string $sTaskUID * @param string $sAssigneeUID @@ -1105,7 +1100,7 @@ class Task 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . - ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", 'aas_type' => "group" ); @@ -1161,16 +1156,16 @@ class Task $iType = 2; $oTaskUser = new \TaskUser(); if ($sRelation == 1) { - $oTaskUser->create(array('TAS_UID' => $sTaskUID, - 'USR_UID' => $sAssigneeUID, - 'TU_TYPE' => $iType, + $oTaskUser->create(array('TAS_UID' => $sTaskUID, + 'USR_UID' => $sAssigneeUID, + 'TU_TYPE' => $iType, 'TU_RELATION' => $sRelation)); return array('aas_uid' => $sAssigneeUID, 'aas_type' => "user"); } else { - $oTaskUser->create(array('TAS_UID' => $sTaskUID, - 'USR_UID' => $sAssigneeUID, - 'TU_TYPE' => $iType, + $oTaskUser->create(array('TAS_UID' => $sTaskUID, + 'USR_UID' => $sAssigneeUID, + 'TU_TYPE' => $iType, 'TU_RELATION' => $sRelation)); return array('aas_uid' => $sAssigneeUID, 'aas_type' => "group"); From 0bd480a83cdd7876aaa165de65277a4e176fa164 Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Wed, 4 Dec 2013 12:44:39 -0400 Subject: [PATCH 3/5] Ajustes code style --- workflow/engine/src/BusinessModel/Task.php | 36 ++++++++++------------ 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/workflow/engine/src/BusinessModel/Task.php b/workflow/engine/src/BusinessModel/Task.php index 3b9d4f6d2..87e83b4a3 100644 --- a/workflow/engine/src/BusinessModel/Task.php +++ b/workflow/engine/src/BusinessModel/Task.php @@ -544,7 +544,6 @@ class Task } - /** * Return a assignee list of an activity * @@ -625,7 +624,7 @@ class Task $aUsers[] = array('aas_uid' => $aRow['USR_UID'], 'aas_name' => $aRow['USR_FIRSTNAME'], 'aas_lastname' => $aRow['USR_LASTNAME'], - 'aas_username' => $aRow['USR_USERNAME'], + 'aas_username' => $aRow['USR_USERNAME'], 'aas_type' => "user" ); $oDataset->next(); } @@ -684,7 +683,7 @@ class Task 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] . ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . - ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", 'aas_type' => "group" ); @@ -773,7 +772,7 @@ class Task 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . - ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", 'aas_type' => "group" ); @@ -810,7 +809,6 @@ class Task } } - /** * Assign a user or group to an activity * @@ -829,14 +827,14 @@ class Task $iType = 1; $oTaskUser = new \TaskUser(); if ($sRelation == 1) { - $oTaskUser->create(array('TAS_UID' => $sTaskUID, + $oTaskUser->create(array('TAS_UID' => $sTaskUID, 'USR_UID' => $sAssigneeUID, 'TU_TYPE' => $iType, 'TU_RELATION' => $sRelation)); return array('aas_uid' => $sAssigneeUID, 'aas_type' => "user"); } else { - $oTaskUser->create(array('TAS_UID' => $sTaskUID, + $oTaskUser->create(array('TAS_UID' => $sTaskUID, 'USR_UID' => $sAssigneeUID, 'TU_TYPE' => $iType, 'TU_RELATION' => $sRelation)); @@ -863,18 +861,16 @@ class Task try { $iType = 1; $oTaskUser = new \TaskUser(); - + if ($sRelation == 1) { $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); } else { $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); } - } catch (Exception $e) { throw $e; } - } /** @@ -957,7 +953,7 @@ class Task $aUsers[] = array('aas_uid' => $aRow['USR_UID'], 'aas_name' => $aRow['USR_FIRSTNAME'], 'aas_lastname' => $aRow['USR_LASTNAME'], - 'aas_username' => $aRow['USR_USERNAME'], + 'aas_username' => $aRow['USR_USERNAME'], 'aas_type' => "user" ); $oDataset->next(); } @@ -1016,7 +1012,7 @@ class Task 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] . ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . - ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", 'aas_type' => "group" ); @@ -1050,7 +1046,7 @@ class Task /** * Return a single Adhoc user or group assigned to an activity - * + * * @param string $sProcessUID * @param string $sTaskUID * @param string $sAssigneeUID @@ -1105,7 +1101,7 @@ class Task 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . - ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", 'aas_type' => "group" ); @@ -1161,16 +1157,16 @@ class Task $iType = 2; $oTaskUser = new \TaskUser(); if ($sRelation == 1) { - $oTaskUser->create(array('TAS_UID' => $sTaskUID, - 'USR_UID' => $sAssigneeUID, - 'TU_TYPE' => $iType, + $oTaskUser->create(array('TAS_UID' => $sTaskUID, + 'USR_UID' => $sAssigneeUID, + 'TU_TYPE' => $iType, 'TU_RELATION' => $sRelation)); return array('aas_uid' => $sAssigneeUID, 'aas_type' => "user"); } else { - $oTaskUser->create(array('TAS_UID' => $sTaskUID, - 'USR_UID' => $sAssigneeUID, - 'TU_TYPE' => $iType, + $oTaskUser->create(array('TAS_UID' => $sTaskUID, + 'USR_UID' => $sAssigneeUID, + 'TU_TYPE' => $iType, 'TU_RELATION' => $sRelation)); return array('aas_uid' => $sAssigneeUID, 'aas_type' => "group"); From 7275a9d08301c56f994d115d53e193be913d061c Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Fri, 6 Dec 2013 09:35:43 -0400 Subject: [PATCH 4/5] Ajustes clase Activity, se agregan validaciones, se modifica catch exception, variable a camelcase --- workflow/engine/src/BusinessModel/Task.php | 159 ++++++----- .../Project/Activity/Assignee.php | 265 +++++++++--------- 2 files changed, 225 insertions(+), 199 deletions(-) diff --git a/workflow/engine/src/BusinessModel/Task.php b/workflow/engine/src/BusinessModel/Task.php index 87e83b4a3..c190424c9 100644 --- a/workflow/engine/src/BusinessModel/Task.php +++ b/workflow/engine/src/BusinessModel/Task.php @@ -546,15 +546,18 @@ class Task /** * Return a assignee list of an activity - * + * * @param string $sProcessUID * @param string $sTaskUID + * @param string $filter + * @param int $start + * @param int $limit * * return array * * @access public */ - public function getTaskAssignees($sProcessUID, $sTaskUID) + public function getTaskAssignees($sProcessUID, $sTaskUID, $filter, $start, $limit) { try { $aUsers = array(); @@ -566,7 +569,6 @@ class Task $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); $oCriteria->addAlias('C', 'CONTENT'); - $aConditions = array(); $aConditions[] = array(\TaskUserPeer::USR_UID, 'C.CON_ID' ); $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter ); @@ -596,8 +598,8 @@ class Task } $aUsers[] = array('aas_uid' => $aRow['USR_UID'], 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . - ' (' . $aRow2['MEMBERS_NUMBER'] . - ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . + ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", @@ -639,13 +641,15 @@ class Task * * @param string $sProcessUID * @param string $sTaskUID + * @param string $filter + * @param int $start + * @param int $limit * * return array * * @access public */ - - public function getTaskAvailableAssignee($sProcessUID, $sTaskUID) + public function getTaskAvailableAssignee($sProcessUID, $sTaskUID, $filter, $start, $limit) { try { $iType = 1; @@ -681,9 +685,9 @@ class Task $aRow2 = $oDataset2->getRow(); $aUsers[] = array('aas_uid' => $results['GRP_UID'], 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] . - ' (' . $aRow2['MEMBERS_NUMBER'] . - ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . - ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . + ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", 'aas_type' => "group" ); @@ -717,7 +721,7 @@ class Task /** * Return a single user or group assigned to an activity - * + * * @param string $sProcessUID * @param string $sTaskUID * @param string $sAssigneeUID @@ -739,7 +743,6 @@ class Task $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); $oCriteria->addAlias('C', 'CONTENT'); - $aConditions = array(); $aConditions[] = array(\TaskUserPeer::USR_UID, 'C.CON_ID' ); $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter ); @@ -770,8 +773,8 @@ class Task } $aUsers = array('aas_uid' => $aRow['USR_UID'], 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . - ' (' . $aRow2['MEMBERS_NUMBER'] . - ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . + ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", @@ -811,35 +814,35 @@ class Task /** * Assign a user or group to an activity - * + * * @param string $sProcessUID * @param string $sTaskUID * @param string $sAssigneeUID - * @param int $sRelation + * @param string $assType {@choice user,group} * * return array * * @access public */ - public function postTaskAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $sRelation) + public function addTaskAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $assType) { try { $iType = 1; $oTaskUser = new \TaskUser(); - if ($sRelation == 1) { + if ($assType == "user") { $oTaskUser->create(array('TAS_UID' => $sTaskUID, - 'USR_UID' => $sAssigneeUID, - 'TU_TYPE' => $iType, - 'TU_RELATION' => $sRelation)); + 'USR_UID' => $sAssigneeUID, + 'TU_TYPE' => $iType, + 'TU_RELATION' => 1)); return array('aas_uid' => $sAssigneeUID, - 'aas_type' => "user"); + 'aas_type' => $assType); } else { $oTaskUser->create(array('TAS_UID' => $sTaskUID, - 'USR_UID' => $sAssigneeUID, - 'TU_TYPE' => $iType, - 'TU_RELATION' => $sRelation)); - return array('aas_uid' => $sAssigneeUID, - 'aas_type' => "group"); + 'USR_UID' => $sAssigneeUID, + 'TU_TYPE' => $iType, + 'TU_RELATION' => 2)); + return array('aas_uid' => $sAssigneeUID, + 'aas_type' => $assType); } } catch (Exception $e) { throw $e; @@ -848,26 +851,34 @@ class Task /** * Remove a assignee of an activity - * + * * @param string $sProcessUID * @param string $sTaskUID * @param string $sAssigneeUID - * @param int $sRelation * * @access public */ - public function deleteTaskAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $sRelation) - { + public function removeTaskAssignee($sProcessUID, $sTaskUID, $sAssigneeUID) + { try { $iType = 1; - $oTaskUser = new \TaskUser(); - - if ($sRelation == 1) { - $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); - } else { - $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn( \TaskUserPeer::TU_RELATION ); + $oCriteria->add(\TaskUserPeer::USR_UID, $sAssigneeUID); + $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\TaskUserPeer::TU_TYPE, $iType); + $oTaskUser = \TaskUserPeer::doSelectRS($oCriteria); + $oTaskUser->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + while ($oTaskUser->next()) { + $aRow = $oTaskUser->getRow(); + $iRelation = $aRow['TU_RELATION']; + } + $oTaskUser = \TaskUserPeer::retrieveByPK($sTaskUID, $sAssigneeUID, $iType, $iRelation); + if (! is_null( $oTaskUser )) { + \TaskUserPeer::doDelete($oCriteria); + } else { + throw (new \Exception( 'This row does not exist!' )); } - } catch (Exception $e) { throw $e; } @@ -875,7 +886,7 @@ class Task /** * Return a adhoc assignee list of an activity - * + * * @param string $sProcessUID * @param string $sTaskUID * @@ -895,7 +906,6 @@ class Task $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); $oCriteria->addAlias('C', 'CONTENT'); - $aConditions = array(); $aConditions[] = array(\TaskUserPeer::USR_UID, 'C.CON_ID' ); $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter ); @@ -925,8 +935,8 @@ class Task } $aUsers[] = array('aas_uid' => $aRow['USR_UID'], 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . - ' (' . $aRow2['MEMBERS_NUMBER'] . - ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . + ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", @@ -973,7 +983,6 @@ class Task * * @access public */ - public function getTaskAvailableAdhocAssignee($sProcessUID, $sTaskUID) { try { @@ -1010,9 +1019,9 @@ class Task $aRow2 = $oDataset2->getRow(); $aUsers[] = array('aas_uid' => $results['GRP_UID'], 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] . - ' (' . $aRow2['MEMBERS_NUMBER'] . - ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . - ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), + ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . + ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", 'aas_type' => "group" ); @@ -1068,7 +1077,6 @@ class Task $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE); $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); $oCriteria->addAlias('C', 'CONTENT'); - $aConditions = array(); $aConditions[] = array(\TaskUserPeer::USR_UID, 'C.CON_ID' ); $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter ); @@ -1099,8 +1107,8 @@ class Task } $aUsers = array('aas_uid' => $aRow['USR_UID'], 'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . - ' (' . $aRow2['MEMBERS_NUMBER'] . - ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . + ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' . + ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')) . ')' . '' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']), 'aas_lastname' => "", 'aas_username' => "", @@ -1138,38 +1146,37 @@ class Task } } - /** * Assign a Adhoc user or group to an activity - * + * * @param string $sProcessUID * @param string $sTaskUID * @param string $sAssigneeUID - * @param int $sRelation + * @param string $assType * * return array * * @access public */ - public function postTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $sRelation) + public function addTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $assType) { try { $iType = 2; $oTaskUser = new \TaskUser(); - if ($sRelation == 1) { + if ($assType == "user") { $oTaskUser->create(array('TAS_UID' => $sTaskUID, 'USR_UID' => $sAssigneeUID, 'TU_TYPE' => $iType, - 'TU_RELATION' => $sRelation)); - return array('aas_uid' => $sAssigneeUID, - 'aas_type' => "user"); + 'TU_RELATION' => 1)); + return array('aas_uid' => $sAssigneeUID, + 'aas_type' => $assType); } else { $oTaskUser->create(array('TAS_UID' => $sTaskUID, 'USR_UID' => $sAssigneeUID, 'TU_TYPE' => $iType, - 'TU_RELATION' => $sRelation)); - return array('aas_uid' => $sAssigneeUID, - 'aas_type' => "group"); + 'TU_RELATION' => 2)); + return array('aas_uid' => $sAssigneeUID, + 'aas_type' => $assType); } } catch (Exception $e) { throw $e; @@ -1178,30 +1185,36 @@ class Task /** * Remove a Adhoc assignee of an activity - * + * * @param string $sProcessUID * @param string $sTaskUID * @param string $sAssigneeUID - * @param int $sRelation * * @access public */ - public function deleteTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $sRelation) + public function removeTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID) { try { $iType = 2; - $oTaskUser = new \TaskUser(); - - if ($sRelation == 1) { - $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); - } else { - $oTaskUser->remove($sTaskUID, $sAssigneeUID, $iType, $sRelation); + $oCriteria = new \Criteria('workflow'); + $oCriteria->addSelectColumn( \TaskUserPeer::TU_RELATION ); + $oCriteria->add(\TaskUserPeer::USR_UID, $sAssigneeUID); + $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\TaskUserPeer::TU_TYPE, $iType); + $oTaskUser = \TaskUserPeer::doSelectRS($oCriteria); + $oTaskUser->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + while ($oTaskUser->next()) { + $aRow = $oTaskUser->getRow(); + $iRelation = $aRow['TU_RELATION']; + } + $oTaskUser = \TaskUserPeer::retrieveByPK($sTaskUID, $sAssigneeUID, $iType, $iRelation); + if (! is_null( $oTaskUser )) { + \TaskUserPeer::doDelete($oCriteria); + } else { + throw (new \Exception( 'This row does not exist!' )); } - } catch (Exception $e) { throw $e; } - } - + } } - diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Assignee.php b/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Assignee.php index 1d8e7279f..09acd897c 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Assignee.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Assignee.php @@ -1,7 +1,6 @@ getTaskAssignees($prj_uid, $act_uid, $filter, $start, $limit); - - //Response - $response = $arrayData; - } catch (\Exception $e) { - //Response - $response["success"] = false; - $response["message"] = $e->getMessage(); - } - - return $response; - } - - /** - * @url GET /:prj_uid/activity/:act_uid/available-assignee - */ - public function doGetActivityAvailableAssignee($prj_uid, $act_uid, $filter = '', $start = '', $limit = '') - { - $response = array(); - - try { - $task = new \BusinessModel\Task(); - $arrayData = $task->getTaskAvailableAssignee($prj_uid, $act_uid); - + $arrayData = $task->getTaskAssignees($prjUid, $actUid, $filter, $start, $limit); //Response $response = $arrayData; } catch (\Exception $e) { //response - $response["success"] = false; - $response["message"] = $e->getMessage(); + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } - return $response; } /** - * @url GET /:prj_uid/activity/:act_uid/assignee/:aas_uid + * @url GET /:prjUid/activity/:actUid/available-assignee + * + * @param string $prjUid + * @param string $actUid + * @param string $filter + * @param int $start + * @param int $limit + * */ - public function doGetActivityAssignee($prj_uid, $act_uid, $aas_uid) + public function doGetActivityAvailableAssignee($prjUid, $actUid, $filter = '', $start = '1', $limit = '50') { $response = array(); - try { $task = new \BusinessModel\Task(); - $arrayData = $task->getTaskAssignee($prj_uid, $act_uid, $aas_uid); - + $arrayData = $task->getTaskAvailableAssignee($prjUid, $actUid, $filter, $start, $limit); //Response $response = $arrayData; } catch (\Exception $e) { //response - $response["success"] = false; - $response["message"] = $e->getMessage(); + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } - return $response; } /** - * @url POST /:prj_uid/activity/:act_uid/assignee + * @url GET /:prjUid/activity/:actUid/assignee/:aasUid + * + * @param string $prjUid + * @param string $actUid + * @param string $aasUid + * + */ + public function doGetActivityAssignee($prjUid, $actUid, $aasUid) + { + $response = array(); + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->getTaskAssignee($prjUid, $actUid, $aasUid); + //Response + $response = $arrayData; + } catch (\Exception $e) { + //response + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); + } + return $response; + } + + /** + * @url POST /:prjUid/activity/:actUid/assignee + * + * @param string $prjUid + * @param string $actUid + * @param string $assUid + * @param string $assType {@choice user,group} + * * @status 201 */ - public function doPostActivityAssignee($prj_uid, $act_uid, $assignee_uid, $tu_relation) + public function doPostActivityAssignee($prjUid, $actUid, $assUid, $assType) { - $response = array(); - try { $task = new \BusinessModel\Task(); - $arrayData = $task->postTaskAssignee($prj_uid, $act_uid, $assignee_uid, $tu_relation); - - //Response - $response ["success"] = true; - $response = $arrayData; - } catch (\Exception $e) { - //response - $response["success"] = false; - $response["message"] = $e->getMessage(); - } - - return $response; - } - - /** - * @url DELETE /:prj_uid/activity/:act_uid/assignee/:aas_uid/relation/:tu_relation - */ - public function doDeleteActivityAssignee($prj_uid, $act_uid, $aas_uid, $tu_relation) - { - $response = array(); - - try { - $task = new \BusinessModel\Task(); - $arrayData = $task->deleteTaskAssignee($prj_uid, $act_uid, $aas_uid, $tu_relation); - - } catch (\Exception $e) { - //response - $response["success"] = false; - $response["message"] = $e->getMessage(); - } - - return $response; - } - - /** - * @url GET /:prj_uid/activity/:act_uid/adhoc-assignee - */ - public function doGetActivityAdhocAssignees($prj_uid, $act_uid, $filter = '', $start = '', $limit = '') - { - $response = array(); - - try { - $task = new \BusinessModel\Task(); - $arrayData = $task->getTaskAdhocAssignees($prj_uid, $act_uid, $filter, $start, $limit); - + $arrayData = $task->addTaskAssignee($prjUid, $actUid, $assUid, $assType); //Response $response = $arrayData; } catch (\Exception $e) { //Response - $response["success"] = false; - $response["message"] = $e->getMessage(); + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } - return $response; } /** - * @url GET /:prj_uid/activity/:act_uid/available-adhoc-assignee + * @url DELETE /:prjUid/activity/:actUid/assignee/:assUid + * + * @param string $prjUid + * @param string $actUid + * @param string $assUid + * */ - public function doGetActivityAvailableAdhocAssignee($prj_uid, $act_uid, $filter = '', $start = '', $limit = '') + public function doDeleteActivityAssignee($prjUid, $actUid, $assUid) { - $response = array(); - try { $task = new \BusinessModel\Task(); - $arrayData = $task->getTaskAvailableAdhocAssignee($prj_uid, $act_uid); + $arrayData = $task->removeTaskAssignee($prjUid, $actUid, $assUid); + } catch (\Exception $e) { + //response + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); + } + return $response; + } + /** + * @url GET /:prjUid/activity/:actUid/adhoc-assignee + * + * @param string $prjUid + * @param string $actUid + * @param string $filter + * @param int $start + * @param int $limit + * + */ + public function doGetActivityAdhocAssignees($prjUid, $actUid, $filter = '', $start = '1', $limit = '50') + { + $response = array(); + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->getTaskAdhocAssignees($prjUid, $actUid, $filter, $start, $limit); //Response $response = $arrayData; } catch (\Exception $e) { //response - $response["success"] = false; - $response["message"] = $e->getMessage(); + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } - return $response; } /** - * @url GET /:prj_uid/activity/:act_uid/adhoc-assignee/:aas_uid + * @url GET /:prjUid/activity/:actUid/available-adhoc-assignee + * + * @param string $prjUid + * @param string $actUid + * @param string $filter + * @param int $start + * @param int $limit + * */ - public function doGetActivityAdhocAssignee($prj_uid, $act_uid, $aas_uid) + public function doGetActivityAvailableAdhocAssignee($prjUid, $actUid, $filter = '', $start = '1', $limit = '50') { $response = array(); - try { $task = new \BusinessModel\Task(); - $arrayData = $task->getTaskAdhocAssignee($prj_uid, $act_uid, $aas_uid); - + $arrayData = $task->getTaskAvailableAdhocAssignee($prjUid, $actUid, $filter, $start, $limit); //Response $response = $arrayData; } catch (\Exception $e) { //response - $response["success"] = false; - $response["message"] = $e->getMessage(); + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } - return $response; } /** - * @url POST /:prj_uid/activity/:act_uid/adhoc-assignee + * @url GET /:prjUid/activity/:actUid/adhoc-assignee/:aasUid + * + * @param string $prjUid + * @param string $actUid + * @param string $assUid + * + */ + public function doGetActivityAdhocAssignee($prjUid, $actUid, $aasUid) + { + $response = array(); + try { + $task = new \BusinessModel\Task(); + $arrayData = $task->getTaskAdhocAssignee($prjUid, $actUid, $aasUid); + //Response + $response = $arrayData; + } catch (\Exception $e) { + //response + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); + } + return $response; + } + + /** + * @url POST /:prjUid/activity/:actUid/adhoc-assignee + * + * @param string $prjUid + * @param string $actUid + * @param string $assUid + * @param string $assType {@choice user,group} + * * @status 201 */ - public function doPostActivityAdhocAssignee($prj_uid, $act_uid, $assignee_uid, $tu_relation) + public function doPostActivityAdhocAssignee($prjUid, $actUid, $assUid, $assType) { - $response = array(); - try { $task = new \BusinessModel\Task(); - $arrayData = $task->postTaskAdhocAssignee($prj_uid, $act_uid, $assignee_uid, $tu_relation); - + $arrayData = $task->addTaskAdhocAssignee($prjUid, $actUid, $assUid, $assType); //Response - $response ["success"] = true; $response = $arrayData; } catch (\Exception $e) { //response - $response["success"] = false; - $response["message"] = $e->getMessage(); + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } - return $response; } /** - * @url DELETE /:prj_uid/activity/:act_uid/adhoc-assignee/:aas_uid/relation/:tu_relation + * @url DELETE /:prjUid/activity/:actUid/adhoc-assignee/:assUid + * + * @param string $prjUid + * @param string $actUid + * @param string $assUid + * */ - public function doDeleteActivityAdhocAssignee($prj_uid, $act_uid, $aas_uid, $tu_relation) + public function doDeleteActivityAdhocAssignee($prjUid, $actUid, $assUid) { $response = array(); - try { $task = new \BusinessModel\Task(); - $arrayData = $task->deleteTaskAdhocAssignee($prj_uid, $act_uid, $aas_uid, $tu_relation); - + $arrayData = $task->removeTaskAdhocAssignee($prjUid, $actUid, $assUid); } catch (\Exception $e) { //response - $response["success"] = false; - $response["message"] = $e->getMessage(); + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } - return $response; } } - From 1776ff56f2d8c09a3948de85360606b680abd313 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Fri, 6 Dec 2013 14:06:38 +0000 Subject: [PATCH 5/5] api.ini merged con trigger y assignee --- workflow/engine/src/Services/api.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/workflow/engine/src/Services/api.ini b/workflow/engine/src/Services/api.ini index d4cae4ed5..7cb335a67 100644 --- a/workflow/engine/src/Services/api.ini +++ b/workflow/engine/src/Services/api.ini @@ -16,4 +16,5 @@ debug = 1 activity = "Services\Api\ProcessMaker\Project\Activity" step = "Services\Api\ProcessMaker\Project\Activity\Step" assignee = "Services\Api\ProcessMaker\Project\Activity\Assignee" + trigger = "Services\Api\ProcessMaker\Project\Activity\Step\Trigger"