Merged in darojas/processmaker (pull request #102)
Se agregan dos metodos GET para PROJECT USERS. Se agrega validacion en OUTPUT DOCUMENTS
This commit is contained in:
@@ -246,6 +246,9 @@ class OutputDocument
|
||||
if (!$process->exists($sProcessUID)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($sProcessUID, "PROCESS"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
}
|
||||
if ($aData["OUT_DOC_TITLE"]=="") {
|
||||
throw (new \Exception( 'invalid value specified for `out_doc_title`, can`t be null'));
|
||||
}
|
||||
if (isset($aData["OUT_DOC_TITLE"]) && $this->existsTitle($sProcessUID, $aData["OUT_DOC_TITLE"])) {
|
||||
throw (new \Exception(\G::LoadTranslation("ID_OUTPUT_NOT_SAVE")));
|
||||
}
|
||||
|
||||
160
workflow/engine/src/BusinessModel/ProjectUser.php
Normal file
160
workflow/engine/src/BusinessModel/ProjectUser.php
Normal file
@@ -0,0 +1,160 @@
|
||||
<?php
|
||||
namespace BusinessModel;
|
||||
|
||||
use \G;
|
||||
|
||||
class ProjectUser
|
||||
{
|
||||
/**
|
||||
* Return the users to assigned to a process
|
||||
*
|
||||
* @param string $sProcessUID {@min 32} {@max 32}
|
||||
*
|
||||
* return array
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function getProjectUsers($sProcessUID)
|
||||
{
|
||||
try {
|
||||
$aUsers = array();
|
||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->setDistinct();
|
||||
$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->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID);
|
||||
$oCriteria->add(\TaskUserPeer::TU_TYPE, 1);
|
||||
$oCriteria->add(\TaskUserPeer::TU_RELATION, 1);
|
||||
$oCriteria->addGroupByColumn(USR_UID);
|
||||
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$aUsers[] = array('usr_uid' => $aRow['USR_UID'],
|
||||
'usr_username' => $aRow['USR_USERNAME'],
|
||||
'usr_firstname' => $aRow['USR_FIRSTNAME'],
|
||||
'usr_lastname' => $aRow['USR_LASTNAME']);
|
||||
$oDataset->next();
|
||||
}
|
||||
return $aUsers;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the users and users groups to assigned to a process
|
||||
*
|
||||
* @param string $sProcessUID {@min 32} {@max 32}
|
||||
*
|
||||
* return array
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function getProjectStartingTasks($sProcessUID)
|
||||
{
|
||||
try {
|
||||
$aUsers = array();
|
||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->setDistinct();
|
||||
$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->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID);
|
||||
$oCriteria->add(\TaskUserPeer::TU_TYPE, 1);
|
||||
$oCriteria->add(\TaskUserPeer::TU_RELATION, 1);
|
||||
$oCriteria->addGroupByColumn(USR_UID);
|
||||
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
\G::LoadClass( 'case' );
|
||||
$oCase = new \Cases();
|
||||
$startTasks = $oCase->getStartCases( $aRow['USR_UID'] );
|
||||
foreach ($startTasks as $task) {
|
||||
if ((isset( $task['pro_uid'] )) && ($task['pro_uid'] == $sProcessUID)) {
|
||||
$taskValue = explode( '(', $task['value'] );
|
||||
$tasksLastIndex = count( $taskValue ) - 1;
|
||||
$taskValue = explode( ')', $taskValue[$tasksLastIndex] );
|
||||
//echo "<option value=\"" . $task['uid'] . "\">" . $taskValue[0] . "</option>";
|
||||
echo $task['uid'] ." ------ ".$aUsers["tas_uid"]." fin ";
|
||||
//var_dump($aUsers);
|
||||
if (in_array($task['uid'], $aUsers)) {
|
||||
echo "Es mac";
|
||||
}
|
||||
|
||||
$aUsers[] = array(/*'usr_uid' => $aRow['USR_UID'],
|
||||
'usr_username' => $aRow['USR_USERNAME'],
|
||||
'usr_firstname' => $aRow['USR_FIRSTNAME'],
|
||||
'usr_lastname' => $aRow['USR_LASTNAME'],*/
|
||||
'tas_name' => $taskValue[0],
|
||||
'tas_uid' => $task['uid']);
|
||||
if (in_array($task['uid'], $aUsers['tas_uid'] )) {
|
||||
echo "Es mac";
|
||||
}
|
||||
echo $task['uid'] . " ";
|
||||
$oDataset->next();
|
||||
}
|
||||
//$oDataset->next();
|
||||
}
|
||||
//die();
|
||||
$oDataset->next();
|
||||
|
||||
}
|
||||
return $aUsers;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the users and users groups to assigned to a process
|
||||
*
|
||||
* @param string $sProcessUID {@min 32} {@max 32}
|
||||
* @param string $sUserUID {@min 32} {@max 32}
|
||||
*
|
||||
* return array
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function getProjectStartingTaskUsers($sProcessUID, $sUserUID)
|
||||
{
|
||||
try {
|
||||
$aUsers = array();
|
||||
\G::LoadClass( 'case' );
|
||||
$oCase = new \Cases();
|
||||
$startTasks = $oCase->getStartCases($sUserUID);
|
||||
foreach ($startTasks as $task) {
|
||||
if ((isset( $task['pro_uid'] )) && ($task['pro_uid'] == $sProcessUID)) {
|
||||
$taskValue = explode( '(', $task['value'] );
|
||||
$tasksLastIndex = count( $taskValue ) - 1;
|
||||
$taskValue = explode( ')', $taskValue[$tasksLastIndex] );
|
||||
$aUsers[] = array('tas_uid' => $task['uid'],
|
||||
'tas_name' => $taskValue[0]);
|
||||
}
|
||||
}
|
||||
return $aUsers;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
namespace Services\Api\ProcessMaker\Project;
|
||||
|
||||
use \ProcessMaker\Services\Api;
|
||||
use \Luracast\Restler\RestException;
|
||||
|
||||
/**
|
||||
* Project\ProjectUsers Api Controller
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
class ProjectUsers extends Api
|
||||
{
|
||||
/**
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
*
|
||||
* @url GET /:prjUid/users
|
||||
*/
|
||||
public function doGetProjectUsers($prjUid)
|
||||
{
|
||||
try {
|
||||
$supervisor = new \BusinessModel\ProjectUser();
|
||||
$arrayData = $supervisor->getProjectUsers($prjUid);
|
||||
//Response
|
||||
$response = $arrayData;
|
||||
} catch (\Exception $e) {
|
||||
//response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
*
|
||||
* @url GET /:prjUid/starting-tasks
|
||||
*/
|
||||
public function doGetProjectStartingTasks($prjUid)
|
||||
{
|
||||
try {
|
||||
$supervisor = new \BusinessModel\ProjectUser();
|
||||
$arrayData = $supervisor->getProjectStartingTasks($prjUid);
|
||||
//Response
|
||||
$response = $arrayData;
|
||||
} catch (\Exception $e) {
|
||||
//response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $usrUid {@min 32} {@max 32}
|
||||
*
|
||||
* @url GET /:prjUid/user/:usrUid/starting-tasks
|
||||
*/
|
||||
public function doGetProjectStartingTaskUsers($prjUid, $usrUid)
|
||||
{
|
||||
try {
|
||||
$supervisor = new \BusinessModel\ProjectUser();
|
||||
$arrayData = $supervisor->getProjectStartingTaskUsers($prjUid, $usrUid);
|
||||
//Response
|
||||
$response = $arrayData;
|
||||
} catch (\Exception $e) {
|
||||
//response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -28,6 +28,7 @@ debug = 1
|
||||
case-scheduler = "Services\Api\ProcessMaker\Project\CaseScheduler"
|
||||
case-tracker = "Services\Api\ProcessMaker\Project\CaseTracker"
|
||||
case-tracker-object = "Services\Api\ProcessMaker\Project\CaseTrackerObject"
|
||||
project-users = "Services\Api\ProcessMaker\Project\ProjectUsers"
|
||||
|
||||
[alias: projects]
|
||||
project = "Services\Api\ProcessMaker\Project"
|
||||
|
||||
Reference in New Issue
Block a user