Exemplo n.º 1
0
 /**
  * Create the application document registry
  * @param array $aData
  * @return string
  **/
 public function create($aData)
 {
     $oConnection = Propel::getConnection(TaskUserPeer::DATABASE_NAME);
     try {
         $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);
         if ($oTaskUser->validate()) {
             $oConnection->begin();
             $iResult = $oTaskUser->save();
             $oConnection->commit();
             return $iResult;
         } else {
             $sMessage = '';
             $aValidationFailures = $oTaskUser->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The registry cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
Exemplo n.º 2
0
 function removeTest($aTestData, $aFields)
 {
     $oTaskUser = new TaskUser();
     try {
         return $oTaskUser->remove($aFields['TAS_UID'], $aFields['USR_UID'], $aFields['TU_TYPE'], $aFields['TU_RELATION']);
     } catch (Exception $oError) {
         return $oError;
     }
 }
Exemplo n.º 3
0
 public function addUser($user_id)
 {
     $user = sfGuardUserPeer::retrieveByPK($user_id);
     if ($user == null) {
         return false;
     }
     $profile = $user->getProfile();
     sfContext::getInstance()->getLogger()->info('Is task already assigned to user?');
     if ($this->isUser($user->getId())) {
         sfContext::getInstance()->getLogger()->info('Task already assigned to user: [' . $this->getName() . ']:[' . $user->getFullName() . ']:[' . $user->getUserId() . ']');
         return true;
     }
     $taskuser = new TaskUser();
     $taskuser->setTaskId($this->getId());
     $taskuser->setUserId($user->getId());
     try {
         $taskuser->save();
     } catch (Exception $e) {
         sfContext::getInstance()->getLogger()->info('Exception assigning task to user, unable to continue');
         return false;
     }
     sfContext::getInstance()->getLogger()->info('Task successfully assigned to user: [' . $this->getName() . ']:[' . $profile->getFullName() . ']:[' . $user->getId() . ']');
     return true;
 }
Exemplo n.º 4
0
 /**
  * Assign a Adhoc user or group to an activity
  *
  * @param string $sProcessUID {@min 32} {@max 32}
  * @param string $sTaskUID {@min 32} {@max 32}
  * @param string $sAssigneeUID {@min 32} {@max 32}
  * @param string $assType {@choice user,group}
  *
  * return array
  *
  * @access public
  */
 public function addTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $assType)
 {
     try {
         Validator::proUid($sProcessUID, '$prj_uid');
         $this->validateActUid($sTaskUID);
         $iType = 2;
         $iRelation = '';
         $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)) {
             throw new \Exception(\G::LoadTranslation("ID_ALREADY_ASSIGNED", array($sAssigneeUID, $sTaskUID)));
         } else {
             $oTypeAssigneeG = \GroupwfPeer::retrieveByPK($sAssigneeUID);
             $oTypeAssigneeU = \UsersPeer::retrieveByPK($sAssigneeUID);
             if (is_null($oTypeAssigneeG) && is_null($oTypeAssigneeU)) {
                 throw new \Exception(\G::LoadTranslation("ID_DOES_NOT_CORRESPOND", array($sAssigneeUID, $assType)));
             }
             if (is_null($oTypeAssigneeG) && !is_null($oTypeAssigneeU)) {
                 $type = "user";
                 if ($type != $assType) {
                     throw new \Exception(\G::LoadTranslation("ID_DOES_NOT_CORRESPOND", array($sAssigneeUID, $assType)));
                 }
             }
             if (!is_null($oTypeAssigneeG) && is_null($oTypeAssigneeU)) {
                 $type = "group";
                 if ($type != $assType) {
                     throw new \Exception(\G::LoadTranslation("ID_DOES_NOT_CORRESPOND", array($sAssigneeUID, $assType)));
                 }
             }
             $oTaskUser = new \TaskUser();
             if ($assType == "user") {
                 $oTaskUser->create(array('TAS_UID' => $sTaskUID, 'USR_UID' => $sAssigneeUID, 'TU_TYPE' => $iType, 'TU_RELATION' => 1));
             } else {
                 $oTaskUser->create(array('TAS_UID' => $sTaskUID, 'USR_UID' => $sAssigneeUID, 'TU_TYPE' => $iType, 'TU_RELATION' => 2));
             }
             $task = new \Task();
             $result = $task->update(array("TAS_UID" => $sTaskUID, "TAS_TYPE" => "ADHOC"));
         }
     } catch (\Exception $e) {
         throw $e;
     }
 }
Exemplo n.º 5
0
    /**

     * Get Task User Rows from an array of data

     *

     * @param array $aTaskUser

     * @return array $aStepTrigger

     */

    public function createTaskUserRows ($aTaskUser)

    {

        if (is_array($aTaskUser)) {

            foreach ($aTaskUser as $key => $row) {

                $oTaskUser = new TaskUser();

                if ($oTaskUser->TaskUserExists( $row['TAS_UID'], $row['USR_UID'], $row['TU_TYPE'], $row['TU_RELATION'] )) {

                    $oTaskUser->remove( $row['TAS_UID'], $row['USR_UID'], $row['TU_TYPE'], $row['TU_RELATION'] );

                }

                $res = $oTaskUser->create( $row );

            }

        }

        return;

    }
Exemplo n.º 6
0
 /**
  * Get actors asssigned to task
  *
  * @param object $httpData{tas_uid, tu_type},
  */
 public function getActorsTask($httpData)
 {
     require_once 'classes/model/TaskUser.php';
     $usersTaskList = array();
     $task = new TaskUser();
     $usersTask = $task->getUsersTask($httpData->tas_uid, $httpData->tu_type);
     foreach ($usersTask->data as $userTask) {
         $usersTaskListItem['TAS_UID'] = $userTask['TAS_UID'];
         if ($userTask['TU_RELATION'] == 1) {
             $usersTaskListItem['USR_USERNAME'] = $userTask['USR_USERNAME'];
             $usersTaskListItem['USR_FIRSTNAME'] = $userTask['USR_FIRSTNAME'];
             $usersTaskListItem['USR_LASTNAME'] = $userTask['USR_LASTNAME'];
         } else {
             $usersTaskListItem['NAME'] = $userTask['GRP_TITLE'];
         }
         $usersTaskListItem['TU_RELATION'] = $userTask['TU_RELATION'];
         $usersTaskListItem['USR_UID'] = $userTask['USR_UID'];
         $usersTaskList[] = $usersTaskListItem;
     }
     $this->data = $usersTaskList;
     $this->totalCount = $usersTask->totalCount;
 }
Exemplo n.º 7
0
 public function getUsersTask($param)
 {
     require_once 'classes/model/TaskUser.php';
     G::LoadClass('configuration');
     $usersTaskList = array();
     $task = new TaskUser();
     $conf = new Configurations();
     $TU_TYPE = 1;
     $usersTask = $task->getUsersTask($param['TAS_UID'], $TU_TYPE);
     foreach ($usersTask->data as $userTask) {
         $usersTaskListItem['TAS_UID'] = $userTask['TAS_UID'];
         if ($userTask['TU_RELATION'] == 1) {
             $usersTaskListItem['USR_USERNAME'] = $userTask['USR_USERNAME'];
             $usersTaskListItem['USR_FIRSTNAME'] = $userTask['USR_FIRSTNAME'];
             $usersTaskListItem['USR_LASTNAME'] = $userTask['USR_LASTNAME'];
         } else {
             $usersTaskListItem['NAME'] = $userTask['GRP_TITLE'];
         }
         $usersTaskListItem['TU_RELATION'] = $userTask['TU_RELATION'];
         $usersTaskListItem['USR_UID'] = $userTask['USR_UID'];
         $usersTaskList[] = $usersTaskListItem;
     }
     $result->data = $usersTaskList;
     $result->totalCount = $usersTask->totalCount;
     print G::json_encode($result);
 }
Exemplo n.º 8
0
 require_once 'classes/model/Groupwf.php';
 require_once 'classes/model/TaskUser.php';
 require_once 'classes/model/GroupUser.php';
 G::LoadClass('configuration');
 $co = new Configurations();
 $config = $co->getConfiguration('groupList', 'pageSize', '', $_SESSION['USER_LOGGED']);
 $env = $co->getConfiguration('ENVIRONMENT_SETTINGS', '');
 $limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20;
 $start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0;
 $limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : $limit_size;
 $filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : '';
 global $RBAC;
 if ($limit == $start) {
     $limit = $limit + $limit;
 }
 $tasks = new TaskUser();
 $aTask = $tasks->getCountAllTaksByGroups();
 $members = new GroupUser();
 $aMembers = $members->getCountAllUsersByGroup();
 require_once PATH_CONTROLLERS . 'adminProxy.php';
 $uxList = adminProxy::getUxTypesList();
 $groups = new Groupwf();
 $data = $groups->getAllGroup($start, $limit, $filter);
 $result = $data['rows'];
 $totalRows = 0;
 $arrData = array();
 foreach ($result as $results) {
     $totalRows++;
     $results['CON_VALUE'] = str_replace(array("<", ">"), array("&lt;", "&gt;"), $results['GRP_TITLE']);
     $results['GRP_TASKS'] = isset($aTask[$results['GRP_UID']]) ? $aTask[$results['GRP_UID']] : 0;
     $results['GRP_USERS'] = isset($aMembers[$results['GRP_UID']]) ? $aMembers[$results['GRP_UID']] : 0;
Exemplo n.º 9
0
 /**
  * Validates all modified columns of given TaskUser object.
  * If parameter $columns is either a single column name or an array of column names
  * than only those columns are validated.
  *
  * NOTICE: This does not apply to primary or foreign keys for now.
  *
  * @param      TaskUser $obj The object to validate.
  * @param      mixed $cols Column name or array of column names.
  *
  * @return     mixed TRUE if all columns are valid or the error message of the first invalid column.
  */
 public static function doValidate(TaskUser $obj, $cols = null)
 {
     $columns = array();
     if ($cols) {
         $dbMap = Propel::getDatabaseMap(TaskUserPeer::DATABASE_NAME);
         $tableMap = $dbMap->getTable(TaskUserPeer::TABLE_NAME);
         if (!is_array($cols)) {
             $cols = array($cols);
         }
         foreach ($cols as $colName) {
             if ($tableMap->containsColumn($colName)) {
                 $get = 'get' . $tableMap->getColumn($colName)->getPhpName();
                 $columns[$colName] = $obj->{$get}();
             }
         }
     } else {
         if ($obj->isNew() || $obj->isColumnModified(TaskUserPeer::TAS_UID)) {
             $columns[TaskUserPeer::TAS_UID] = $obj->getTasUid();
         }
         if ($obj->isNew() || $obj->isColumnModified(TaskUserPeer::USR_UID)) {
             $columns[TaskUserPeer::USR_UID] = $obj->getUsrUid();
         }
         if ($obj->isNew() || $obj->isColumnModified(TaskUserPeer::TU_TYPE)) {
             $columns[TaskUserPeer::TU_TYPE] = $obj->getTuType();
         }
         if ($obj->isNew() || $obj->isColumnModified(TaskUserPeer::TU_RELATION)) {
             $columns[TaskUserPeer::TU_RELATION] = $obj->getTuRelation();
         }
     }
     return BasePeer::doValidate(TaskUserPeer::DATABASE_NAME, TaskUserPeer::TABLE_NAME, $columns);
 }
Exemplo n.º 10
0
 /**
  * Of to assign a group from a task
  * @param string $sTaskUID
  * @param string $sGroupUID
  * @param integer $iType
  * @return boolean
  */
 public function ofToAssignGroup($sTaskUID = '', $sGroupUID = '', $iType = 0)
 {
     try {
         $oTaskUser = new TaskUser();
         $oCriteria = new Criteria('workflow');
         $oCriteria->add(GroupUserPeer::GRP_UID, $sGroupUID);
         $oDataset = GroupUserPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         while ($aGroupUser = $oDataset->getRow()) {
             $oCriteria = new Criteria('workflow');
             $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
             $oCriteria->add(TaskUserPeer::USR_UID, $aGroupUser['USR_UID']);
             $oDataset2 = TaskUserPeer::doSelectRS($oCriteria);
             $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
             $oDataset2->next();
             $aRow = $oDataset2->getRow();
             if (is_array($aRow)) {
                 $this->ofToAssignUser($sTaskUID, $aGroupUser['USR_UID'], $iType);
             }
             $oDataset->next();
         }
         return $oTaskUser->remove($sTaskUID, $sGroupUID, $iType, 2);
     } catch (Exception $oError) {
         throw $oError;
     }
 }
Exemplo n.º 11
0
 public function addTaskUser(TaskUser $l)
 {
     $this->collTaskUsers[] = $l;
     $l->setsfGuardUser($this);
 }
Exemplo n.º 12
0
 /**
  * Of to assign a group from a task
  *
  * @param string $sTaskUID
  * @param string $sGroupUID
  * @param integer $iType
  * @return boolean
  */
 public function ofToAssignGroup($sTaskUID = '', $sGroupUID = '', $iType = 0)
 {
     try {
         $oTaskUser = new TaskUser();
         return $oTaskUser->remove($sTaskUID, $sGroupUID, $iType, 2);
     } catch (Exception $oError) {
         throw $oError;
     }
 }
Exemplo n.º 13
0
 /**
  * Send email using appUid and mail
  *
  * @param string $app_uid Unique id of the app
  * @param string $mail
  *
  * return uid
  *
  */
 public function sendEmail($app_uid, $mail, $index)
 {
     require_once PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Application.php";
     $oApplication = new \Application();
     $formData = $oApplication->Load($app_uid);
     $frmData = unserialize($formData['APP_DATA']);
     $dataFormToShowString = "";
     foreach ($frmData as $field => $value) {
         if ($field != 'SYS_LANG' && $field != 'SYS_SKIN' && $field != 'SYS_SYS' && $field != 'APPLICATION' && $field != 'PROCESS' && $field != 'TASK' && $field != 'INDEX' && $field != 'USER_LOGGED' && $field != 'USR_USERNAME' && $field != 'DYN_CONTENT_HISTORY' && $field != 'PIN') {
             $dataFormToShowString .= " " . $field . " " . $value;
         }
     }
     $appData = $this->getDraftApp($app_uid, $index);
     foreach ($appData as $application) {
         $appNumber = $application['APP_NUMBER'];
         $appStatus = $application['APP_STATUS'];
         $index = $application['DEL_INDEX'];
         $prvUsr = $application['APP_DEL_PREVIOUS_USER'];
         $delegateDate = $application['DEL_DELEGATE_DATE'];
         $nextUsr = $application['USR_UID'];
         $proUid = $application['PRO_UID'];
         $proName = $application['APP_PRO_TITLE'];
         $tasName = $application['APP_TAS_TITLE'];
         $threadStatus = $application['DEL_THREAD_STATUS'];
         $tasUid = $application['TAS_UID'];
         $lastIndex = $application['DEL_LAST_INDEX'];
         if ($appStatus == "DRAFT") {
             $labelID = "PMDRFT";
         } else {
             $labelID = "PMIBX";
         }
         if ($mail == "") {
             require_once PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Users.php";
             $oUsers = new \Users();
             if ($nextUsr == "") {
                 //Unassigned:
                 $mail = "";
                 require_once PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "TaskUser.php";
                 $oTaskUsers = new \TaskUser();
                 $taskUsers = $oTaskUsers->getAllUsersTask($tasUid);
                 foreach ($taskUsers as $user) {
                     $usrData = $oUsers->loadDetails($user['USR_UID']);
                     $nextMail = $usrData['USR_EMAIL'];
                     $mail .= $mail == '' ? $nextMail : ',' . $nextMail;
                 }
                 $labelID = "PMUASS";
             } else {
                 $usrData = $oUsers->loadDetails($nextUsr);
                 $mail = $usrData['USR_EMAIL'];
             }
         }
         //first template
         $pathTemplate = PATH_DATA_SITE . "mailTemplates" . PATH_SEP . "pmGmail.html";
         if (!file_exists($pathTemplate)) {
             $file = @fopen($pathTemplate, "w");
             fwrite($file, '<div>');
             fwrite($file, '<span style="display: none !important;">');
             fwrite($file, '-**- Process Name: @#proName<br/>');
             fwrite($file, '-**- Case Number: @#appNumber<br/>');
             fwrite($file, '-**- Case UID: @#caseUid<br/>');
             fwrite($file, '-**- Task Name: @#taskName<br/>');
             fwrite($file, '-**- Index: @#index<br/>');
             fwrite($file, '-**- Action: @#action<br/>');
             fwrite($file, '-**- Previous User: @#prevUser<br/>');
             fwrite($file, '-**- Delegate Date: @#delDate<br/>');
             fwrite($file, '-**- Process Id: @#proUid<br/>');
             fwrite($file, '-**- Type: @#type<br/>');
             fwrite($file, '-**- FormFields: @@oform<br/>');
             fwrite($file, '</span>');
             fwrite($file, '</div>');
             fclose($file);
         }
         $change = array('[', ']', '"');
         $fdata = str_replace($change, ' ', $dataFormToShowString);
         $aFields = array('proName' => $proName, 'appNumber' => $appNumber, 'caseUid' => $app_uid, 'taskName' => $tasName, 'index' => $index, 'action' => $appStatus, 'prevUser' => $prvUsr, 'delDate' => $delegateDate, 'proUid' => $proUid, 'type' => $labelID, 'oform' => $fdata);
         $subject = "[PM] " . $proName . " (" . $index . ") Case: " . $appNumber;
         require_once PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.wsBase.php";
         $ws = new \wsBase();
         $resultMail = $ws->sendMessage($app_uid, '*****@*****.**', $mail, '', '', $subject, 'pmGmail.html', $aFields, array(), true, 0, array(), 1);
         return $resultMail;
     }
     return 'The appUid cant be founded';
 }
Exemplo n.º 14
0
 /**
  * Update WebEntry-Event
  *
  * @param string $webEntryEventUid Unique id of WebEntry-Event
  * @param string $userUidUpdater   Unique id of updater User
  * @param array  $arrayData        Data
  *
  * return array Return data of the WebEntry-Event updated
  */
 public function update($webEntryEventUid, $userUidUpdater, array $arrayData)
 {
     try {
         //Verify data
         $process = new \ProcessMaker\BusinessModel\Process();
         $validator = new \ProcessMaker\BusinessModel\Validator();
         $validator->throwExceptionIfDataIsNotArray($arrayData, "\$arrayData");
         $validator->throwExceptionIfDataIsEmpty($arrayData, "\$arrayData");
         //Set data
         $arrayData = array_change_key_case($arrayData, CASE_UPPER);
         $arrayDataBackup = $arrayData;
         unset($arrayData["WEE_UID"]);
         unset($arrayData["PRJ_UID"]);
         unset($arrayData["WEE_WE_UID"]);
         unset($arrayData["WEE_WE_TAS_UID"]);
         //Set variables
         $arrayWebEntryEventData = $this->getWebEntryEvent($webEntryEventUid, true);
         $arrayFinalData = array_merge($arrayWebEntryEventData, $arrayData);
         //Verify data
         $this->throwExceptionIfNotExistsWebEntryEvent($webEntryEventUid, $this->arrayFieldNameForException["webEntryEventUid"]);
         $this->throwExceptionIfDataIsInvalid($webEntryEventUid, $arrayWebEntryEventData["PRJ_UID"], $arrayData);
         //Update
         $cnn = \Propel::getConnection("workflow");
         $this->webEntryEventWebEntryUid = "";
         $this->webEntryEventWebEntryTaskUid = "";
         try {
             //WebEntry
             $option = "UPDATE";
             if (isset($arrayData["WEE_STATUS"])) {
                 if ($arrayData["WEE_STATUS"] == "ENABLED") {
                     if ($arrayWebEntryEventData["WEE_STATUS"] == "DISABLED") {
                         $option = "INSERT";
                     }
                 } else {
                     if ($arrayWebEntryEventData["WEE_STATUS"] == "ENABLED") {
                         $option = "DELETE";
                     }
                 }
             }
             switch ($option) {
                 case "INSERT":
                     $this->createWebEntry($arrayFinalData["PRJ_UID"], $arrayFinalData["EVN_UID"], $arrayFinalData["ACT_UID"], $arrayFinalData["DYN_UID"], $arrayFinalData["USR_UID"], $arrayFinalData["WEE_TITLE"], $arrayFinalData["WEE_DESCRIPTION"], $userUidUpdater);
                     $arrayData["WEE_WE_UID"] = $this->webEntryEventWebEntryUid;
                     $arrayData["WEE_WE_TAS_UID"] = $this->webEntryEventWebEntryTaskUid;
                     break;
                 case "UPDATE":
                     if ($arrayWebEntryEventData["WEE_WE_UID"] != "") {
                         $task = new \Tasks();
                         //Task - Step
                         if (isset($arrayData["DYN_UID"]) && $arrayData["DYN_UID"] != $arrayWebEntryEventData["DYN_UID"]) {
                             //Delete
                             $step = new \Step();
                             $criteria = new \Criteria("workflow");
                             $criteria->add(\StepPeer::TAS_UID, $arrayWebEntryEventData["WEE_WE_TAS_UID"]);
                             $rsCriteria = \StepPeer::doSelectRS($criteria);
                             $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
                             while ($rsCriteria->next()) {
                                 $row = $rsCriteria->getRow();
                                 $result = $step->remove($row["STEP_UID"]);
                             }
                             //Add
                             $step = new \Step();
                             $stepUid = $step->create(array("PRO_UID" => $arrayWebEntryEventData["PRJ_UID"], "TAS_UID" => $arrayWebEntryEventData["WEE_WE_TAS_UID"]));
                             $result = $step->update(array("STEP_UID" => $stepUid, "STEP_TYPE_OBJ" => "DYNAFORM", "STEP_UID_OBJ" => $arrayData["DYN_UID"], "STEP_POSITION" => 1, "STEP_MODE" => "EDIT"));
                         }
                         //Task - User
                         if (isset($arrayData["USR_UID"]) && $arrayData["USR_UID"] != $arrayWebEntryEventData["USR_UID"]) {
                             //Unassign
                             $taskUser = new \TaskUser();
                             $criteria = new \Criteria("workflow");
                             $criteria->add(\TaskUserPeer::TAS_UID, $arrayWebEntryEventData["WEE_WE_TAS_UID"]);
                             $rsCriteria = \TaskUserPeer::doSelectRS($criteria);
                             $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
                             while ($rsCriteria->next()) {
                                 $row = $rsCriteria->getRow();
                                 $result = $taskUser->remove($row["TAS_UID"], $row["USR_UID"], $row["TU_TYPE"], $row["TU_RELATION"]);
                             }
                             //Assign
                             $result = $task->assignUser($arrayWebEntryEventData["WEE_WE_TAS_UID"], $arrayData["USR_UID"], 1);
                         }
                         //Route
                         if (isset($arrayData["ACT_UID"]) && $arrayData["ACT_UID"] != $arrayWebEntryEventData["ACT_UID"]) {
                             //Delete
                             $result = $task->deleteAllRoutesOfTask($arrayWebEntryEventData["PRJ_UID"], $arrayWebEntryEventData["WEE_WE_TAS_UID"], true);
                             //Add
                             $workflow = \ProcessMaker\Project\Workflow::load($arrayWebEntryEventData["PRJ_UID"]);
                             $result = $workflow->addRoute($arrayWebEntryEventData["WEE_WE_TAS_UID"], $arrayData["ACT_UID"], "SEQUENTIAL");
                         }
                         //WebEntry
                         $arrayDataAux = array();
                         if (isset($arrayData["DYN_UID"])) {
                             $arrayDataAux["DYN_UID"] = $arrayData["DYN_UID"];
                         }
                         if (isset($arrayData["USR_UID"])) {
                             $arrayDataAux["USR_UID"] = $arrayData["USR_UID"];
                         }
                         if (isset($arrayData["WEE_TITLE"])) {
                             $arrayDataAux["WE_TITLE"] = $arrayData["WEE_TITLE"];
                         }
                         if (isset($arrayData["WEE_DESCRIPTION"])) {
                             $arrayDataAux["WE_DESCRIPTION"] = $arrayData["WEE_DESCRIPTION"];
                         }
                         if (count($arrayDataAux) > 0) {
                             $arrayDataAux = $this->webEntry->update($arrayWebEntryEventData["WEE_WE_UID"], $userUidUpdater, $arrayDataAux);
                         }
                     }
                     break;
                 case "DELETE":
                     $this->deleteWebEntry($arrayWebEntryEventData["WEE_WE_UID"], $arrayWebEntryEventData["WEE_WE_TAS_UID"]);
                     $arrayData["WEE_WE_UID"] = "";
                     $arrayData["WEE_WE_TAS_UID"] = "";
                     break;
             }
             //WebEntry-Event
             $webEntryEvent = \WebEntryEventPeer::retrieveByPK($webEntryEventUid);
             $webEntryEvent->fromArray($arrayData, \BasePeer::TYPE_FIELDNAME);
             if ($webEntryEvent->validate()) {
                 $cnn->begin();
                 $result = $webEntryEvent->save();
                 $cnn->commit();
                 //Set WEE_TITLE
                 if (isset($arrayData["WEE_TITLE"])) {
                     $result = \Content::addContent("WEE_TITLE", "", $webEntryEventUid, SYS_LANG, $arrayData["WEE_TITLE"]);
                 }
                 //Set WEE_DESCRIPTION
                 if (isset($arrayData["WEE_DESCRIPTION"])) {
                     $result = \Content::addContent("WEE_DESCRIPTION", "", $webEntryEventUid, SYS_LANG, $arrayData["WEE_DESCRIPTION"]);
                 }
                 //Return
                 $arrayData = $arrayDataBackup;
                 if (!$this->formatFieldNameInUppercase) {
                     $arrayData = array_change_key_case($arrayData, CASE_LOWER);
                 }
                 return $arrayData;
             } else {
                 $msg = "";
                 foreach ($webEntryEvent->getValidationFailures() as $validationFailure) {
                     $msg = $msg . ($msg != "" ? "\n" : "") . $validationFailure->getMessage();
                 }
                 throw new \Exception(\G::LoadTranslation("ID_REGISTRY_CANNOT_BE_UPDATED") . ($msg != "" ? "\n" . $msg : ""));
             }
         } catch (\Exception $e) {
             $cnn->rollback();
             $this->deleteWebEntry($this->webEntryEventWebEntryUid, $this->webEntryEventWebEntryTaskUid);
             throw $e;
         }
     } catch (\Exception $e) {
         throw $e;
     }
 }
Exemplo n.º 15
0
 /**
  * Generate Data
  *
  * @return object criteria
  */
 public function generateData($appUid, $delPreviusUsrUid)
 {
     try {
         G::LoadClass("case");
         //Generate data
         $case = new Cases();
         $criteria = new Criteria("workflow");
         $criteria->addSelectColumn(AppDelegationPeer::APP_UID);
         $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX);
         $criteria->addSelectColumn(ApplicationPeer::APP_DATA);
         $criteria->addSelectColumn(AppDelegationPeer::PRO_UID);
         $criteria->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE);
         $criteria->addSelectColumn(TaskPeer::TAS_UID);
         $criteria->addSelectColumn(TaskPeer::TAS_GROUP_VARIABLE);
         $criteria->addJoin(AppDelegationPeer::APP_UID, ApplicationPeer::APP_UID, Criteria::LEFT_JOIN);
         $criteria->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
         $criteria->add(TaskPeer::TAS_ASSIGN_TYPE, "SELF_SERVICE", Criteria::EQUAL);
         //$criteria->add(TaskPeer::TAS_GROUP_VARIABLE, "", Criteria::NOT_EQUAL);
         $criteria->add(AppDelegationPeer::USR_UID, "", Criteria::EQUAL);
         $criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", Criteria::EQUAL);
         $criteria->add(AppDelegationPeer::APP_UID, $appUid, Criteria::EQUAL);
         $rsCriteria = AppDelegationPeer::doSelectRS($criteria);
         $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         while ($rsCriteria->next()) {
             $row = $rsCriteria->getRow();
             $applicationData = $case->unserializeData($row["APP_DATA"]);
             $taskGroupVariable = trim($row["TAS_GROUP_VARIABLE"], " @#");
             $delPreviusUsrUid = '';
             $unaUid = $this->newRow($row, $delPreviusUsrUid);
             //Selfservice by group
             if ($taskGroupVariable != "" && isset($applicationData[$taskGroupVariable]) && trim($applicationData[$taskGroupVariable]) != "") {
                 $gprUid = trim($applicationData[$taskGroupVariable]);
                 //Define Users by Group
                 $gpr = new GroupUser();
                 $arrayUsers = $gpr->getAllGroupUser($gprUid);
                 foreach ($arrayUsers as $urow) {
                     $newRow["USR_UID"] = $urow["USR_UID"];
                     $listUnassignedGpr = new ListUnassignedGroup();
                     $listUnassignedGpr->newRow($unaUid, $urow["USR_UID"], "GROUP", $gprUid);
                 }
             } else {
                 //Define all users assigned to Task
                 $task = new TaskUser();
                 $arrayUsers = $task->getAllUsersTask($row["TAS_UID"]);
                 foreach ($arrayUsers as $urow) {
                     $newRow["USR_UID"] = $urow["USR_UID"];
                     $listUnassignedGpr = new ListUnassignedGroup();
                     $listUnassignedGpr->newRow($unaUid, $urow["USR_UID"], "USER", "");
                 }
             }
         }
     } catch (Exception $e) {
         throw $e;
     }
 }