Merge branch 'master' of bitbucket.org:colosa/processmaker

This commit is contained in:
Victor Saisa Lopez
2014-05-15 16:55:09 -04:00
6 changed files with 408 additions and 233 deletions

View File

@@ -108,26 +108,43 @@ class ProjectUser
throw (new \Exception( 'This id for prj_uid: '. $sProcessUID .' does not correspond to a registered process'));
}
$aUsers = array();
$sDelimiter = \DBAdapter::getStringDelimiter();
$usersIds = array();
$oCriteria = new \Criteria('workflow');
$oCriteria->setDistinct();
$oCriteria->addSelectColumn(\UsersPeer::USR_UID);
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
$oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
$oCriteria->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN);
$oCriteria->addSelectColumn(\TaskUserPeer::USR_UID);
$oCriteria->addJoin(\TaskPeer::TAS_UID, \TaskUserPeer::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(\TaskUserPeer::USR_UID);
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
while ($oDataset->next()) {
$aRow = $oDataset->getRow();
if (!in_array($aRow['USR_UID'], $usersIds)) {
$usersIds[] = $aRow['USR_UID'];
}
}
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\GroupUserPeer::USR_UID);
$oCriteria->addJoin(\TaskPeer::TAS_UID, \TaskUserPeer::TAS_UID, \Criteria::LEFT_JOIN);
$oCriteria->addJoin(\TaskUserPeer::TAS_UID, \GroupUserPeer::GRP_UID, \Criteria::LEFT_JOIN);
$oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\TaskUserPeer::TU_TYPE, 1);
$oCriteria->add(\TaskUserPeer::TU_RELATION, 2);
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($oDataset->next()) {
$aRow = $oDataset->getRow();
if (!in_array($aRow['USR_UID'], $usersIds)) {
$usersIds[] = $aRow['USR_UID'];
}
}
foreach($usersIds as $value) {
\G::LoadClass( 'case' );
$oCase = new \Cases();
$startTasks = $oCase->getStartCases( $aRow['USR_UID'] );
$startTasks = $oCase->getStartCases( $value );
foreach ($startTasks as $task) {
if ((isset( $task['pro_uid'] )) && ($task['pro_uid'] == $sProcessUID) ) {
$taskValue = explode( '(', $task['value'] );

View File

@@ -668,6 +668,7 @@ class BpmnWorkflow extends Project\Bpmn
$diagram = isset($projectData["diagrams"]) && isset($projectData["diagrams"][0]) ? $projectData["diagrams"][0] : array();
$result = array();
$projectData['prj_uid'] = $prjUid;
$bwp = BpmnWorkflow::load($prjUid);
$projectRecord = array_change_key_case($projectData, CASE_UPPER);
$bwp->update($projectRecord);
@@ -799,7 +800,6 @@ class BpmnWorkflow extends Project\Bpmn
$bwp->removeGateway($gatewayData["GAT_UID"]);
}
}
/*
* Diagram's Events Handling
*/

View File

@@ -63,6 +63,9 @@ class Project extends Api
public function post($prj_name, $request_data)
{
try {
if (!isset($request_data['prj_author'])) {
$request_data['prj_author'] = $this->getUserId();
}
return Adapter\BpmnWorkflow::createFromStruct($request_data);
} catch (\Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());