From 5f34a2469a586ba38ef0335dcb611e70520a084c Mon Sep 17 00:00:00 2001 From: Erik Amaru Ortiz Date: Mon, 28 Feb 2011 19:25:01 +0000 Subject: [PATCH] bpmn designer, validation for actors assigment was added, --- workflow/engine/classes/model/TaskUser.php | 17 ++++------------- workflow/engine/controllers/processProxy.php | 19 +++++++++++++------ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/workflow/engine/classes/model/TaskUser.php b/workflow/engine/classes/model/TaskUser.php index 106b4e11c..27f6a2dc1 100644 --- a/workflow/engine/classes/model/TaskUser.php +++ b/workflow/engine/classes/model/TaskUser.php @@ -49,19 +49,10 @@ class TaskUser extends BaseTaskUser { { $oConnection = Propel::getConnection(TaskUserPeer::DATABASE_NAME); try { - //delete old TaskUserPeer Rows, because is not safe insert previous verify old rows. - $criteria = new Criteria('workflow'); - $criteria->add(TaskUserPeer::TAS_UID, $aData['TAS_UID'] ); - $criteria->add(TaskUserPeer::USR_UID, $aData['USR_UID'] ); - $criteria->add(TaskUserPeer::TU_TYPE, $aData['TU_TYPE'] ); - $criteria->add(TaskUserPeer::TU_RELATION, $aData['TU_RELATION'] ); - $objects = TaskUserPeer::doSelect($criteria, $oConnection); - $oConnection->begin(); - foreach($objects as $row) { - $this->remove($row->getTasUid(), $row->getUsrUid(), $row->getTuType(), $row->getTuRelation() ); - } - $oConnection->commit(); - + $taskUser = TaskUserPeer::retrieveByPK($aData['TAS_UID'], $aData['USR_UID'], $aData['TU_TYPE'], $aData['TU_RELATION']); + + if( is_object($taskUser) ) + return -1; $oTaskUser = new TaskUser(); $oTaskUser->fromArray($aData, BasePeer::TYPE_FIELDNAME); diff --git a/workflow/engine/controllers/processProxy.php b/workflow/engine/controllers/processProxy.php index e587ea95e..0e3a373f6 100644 --- a/workflow/engine/controllers/processProxy.php +++ b/workflow/engine/controllers/processProxy.php @@ -156,17 +156,24 @@ class ProcessProxy extends HttpProxyController foreach( $UIDS as $UID ) { if ($param->TU_RELATION == '1' ) - $oTaskUser->create(array('TAS_UID' => $TAS_UID, 'USR_UID' => $UID, 'TU_TYPE' => $TU_TYPE, 'TU_RELATION' => 1)); + $res[] = $oTaskUser->create(array('TAS_UID' => $TAS_UID, 'USR_UID' => $UID, 'TU_TYPE' => $TU_TYPE, 'TU_RELATION' => 1)); else - $oTaskUser->create(array('TAS_UID' => $TAS_UID, 'USR_UID' => $UID, 'TU_TYPE' => $TU_TYPE, 'TU_RELATION' => 2)); + $res[] = $oTaskUser->create(array('TAS_UID' => $TAS_UID, 'USR_UID' => $UID, 'TU_TYPE' => $TU_TYPE, 'TU_RELATION' => 2)); } $task = TaskPeer::retrieveByPk($TAS_UID); $this->success = true; - if( count($UIDS) > 1 ) - $this->msg = __('ID_ACTORS_ASSIGNED_SUCESSFULLY', SYS_LANG, Array(count($UIDS), $task->getTasTitle())); - else - $this->msg = __('ID_ACTOR_ASSIGNED_SUCESSFULLY', SYS_LANG, Array('tas_title'=>$task->getTasTitle())); + if( ! in_array('-1', $res) ) { + if( count($UIDS) == 1 ) + $this->msg = __('ID_ACTOR_ASSIGNED_SUCESSFULLY', SYS_LANG, Array('tas_title'=>$task->getTasTitle())); + else + $this->msg = __('ID_ACTORS_ASSIGNED_SUCESSFULLY', SYS_LANG, Array(count($UIDS), $task->getTasTitle())); + } else { + if( count($UIDS) == 1 ) + $this->msg = __('ID_ACTOR_ALREADY_ASSIGNED', SYS_LANG, Array( $task->getTasTitle())); + else + $this->msg = __('ID_SOME_ACTORS_ALREADY_ASSIGNED', SYS_LANG, Array( $task->getTasTitle())); + } } /**