Ejemplo n.º 1
0
 public function load($clusterName)
 {
     $result = $this->awsClient->listTasks(['cluster' => $clusterName, 'serviceName' => $this->serviceName, 'maxResults' => 99, 'nextToken' => '']);
     //get existing tasks
     foreach ($result['taskArns'] as $taskArn) {
         $task = new Task();
         $task->setArn($taskArn);
         if (!$task->init($this->creds)) {
             return false;
         }
         if (!$task->load($clusterName)) {
             return false;
         }
         $this->tasks[$taskArn] = $task;
     }
     //get task def
     $details = $this->awsClient->describeServices(['cluster' => $clusterName, 'services' => [$this->serviceName]]);
     $this->taskDefinition = $details['services'][0]['taskDefinition'];
     $this->taskDef = new TaskDef();
     $this->taskDef->init($this->creds);
     $this->taskDef->load($this->taskDefinition);
     //other service items
     $this->status = $details['services'][0]['status'];
     $this->minHealthyPercent = $details['services'][0]['deploymentConfiguration']['minimumHealthyPercent'];
     $this->maxPercent = $details['services'][0]['deploymentConfiguration']['maximumPercent'];
     $this->desiredTaskCount = $details['services'][0]['desiredCount'];
     $this->pendingTaskCount = $details['services'][0]['pendingCount'];
     $this->runningTaskCount = $details['services'][0]['runningCount'];
     return true;
 }
Ejemplo n.º 2
0
 private function updateParent()
 {
     $p_id = $this->parent_id;
     if (!empty($p_id)) {
         $parent = new Task();
         $parent->load($p_id);
         $parent->updateProperties();
     }
 }
Ejemplo n.º 3
0
 public static function task($taskID = null)
 {
     if ($taskID == null) {
         return null;
     }
     $task = Task::load($taskID);
     $title = $task->getTitle();
     $projectID = $task->getProjectID();
     return array_merge(self::tasks($projectID), self::oneCrumb($title, Url::task($taskID)));
 }
 public function _new()
 {
     parent::_new();
     $costcharge = $this->_uses[$this->modeltype];
     if (!$costcharge->isLoaded()) {
         $costcharge->item_type = key($this->_templateobject->getEnumOptions('item_type'));
         $costcharge->source_type = key($this->_templateobject->getEnumOptions('source_type'));
     }
     if (isset($this->_data['project_id'])) {
         $costcharge->project_id = $this->_data['project_id'];
     }
     if (isset($this->_data['task_id'])) {
         $costcharge->task_id = $this->_data['task_id'];
         $task = new Task();
         $task->load($this->_data['task_id']);
         $costcharge->project_id = $task->project_id;
     }
     if (!is_null($costcharge->project_id) && is_null($costcharge->task_id)) {
         $this->view->set('tasks', $this->getTaskList($costcharge->project_id));
     }
     //		switch ($costcharge->item_type) {
     //			case 'PO':
     //				$account=new PLSupplier();
     //				$this->view->set('account_type', 'Supplier');
     //				break;
     //			case 'SI':
     //				$account=new SLCustomer();
     //				$this->view->set('account_type', 'Customer');
     //				break;
     //		}
     //		$this->view->set('accounts', $account->getAll());
     $sidebarlist['equipment_cost_charge'] = array('link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'new_cost_charge', 'project_id' => $costcharge->project_id, 'task_id' => $costcharge->task_id, 'source_type' => 'E'), 'tag' => 'Equipment Usage');
     $sidebarlist['resource_cost_charge'] = array('link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'new_cost_charge', 'project_id' => $costcharge->project_id, 'task_id' => $costcharge->task_id, 'source_type' => 'R'), 'tag' => 'Timesheets');
     $sidebarlist['expenses_cost_charge'] = array('link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'new_cost_charge', 'project_id' => $costcharge->project_id, 'task_id' => $costcharge->task_id, 'source_type' => 'X'), 'tag' => 'Expenses');
     $sidebarlist['material_cost_charge'] = array('link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'new_cost_charge', 'project_id' => $costcharge->project_id, 'task_id' => $costcharge->task_id, 'source_type' => 'M'), 'tag' => 'Purchase Order');
     $sidebar = new SidebarController($this->view);
     $sidebar->addList('Create Charge From', $sidebarlist);
     $sidebarlist = array();
     $sidebarlist['budget_cost_charge'] = array('link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'new_cost_charge', 'project_id' => $costcharge->project_id, 'task_id' => $costcharge->task_id, 'source_type' => 'B'), 'tag' => 'Budget Cost');
     $sidebar->addList('Create Cost From', $sidebarlist);
     $this->view->register('sidebar', $sidebar);
     $this->view->set('sidebar', $sidebar);
 }
Ejemplo n.º 5
0
            $oProcessMap->exploreDirectory($oData->pro_uid, $oData->main_directory, $oData->directory);
            G::auditLog('ProcessFileManager','Upload template ('.$oData->main_directory.') in process "'.$resultProcess['PRO_TITLE'].'"');
            break;
        case 'deleteFile':
            $oProcessMap->deleteFile($oData->pro_uid, $oData->main_directory, $oData->directory, $oData->file);
            G::auditLog('ProcessFileManager','Delete template ('.$oData->main_directory.': '.$oData->file.') in process "'.$resultProcess['PRO_TITLE'].'"');
            break;
        case 'deleteDirectory':
            $oProcessMap->deleteDirectory($oData->pro_uid, $oData->main_directory, $oData->directory, $oData->dir_to_delete);
            break;
        case 'downloadFile':
            $oProcessMap->downloadFile($oData->pro_uid, $oData->main_directory, $oData->directory, $oData->file);
            break;
        case 'deleteSubProcess':
            $oTaskNewPattern = new Task();
            $taskInfo=$oTaskNewPattern->load($oData->tas_uid);
            $titleTask=$taskInfo['TAS_TITLE'];
            G::auditlog("DeleteSubProcess",'Delete Sub-Process -> '.$titleTask.' : '.$oData->tas_uid);
            $sOutput = $oProcessMap->deleteSubProcess($oData->pro_uid, $oData->tas_uid);
            break;
        case 'subProcess_Properties':
            $oProcessMap->subProcess_Properties($oData->pro_uid, $oData->tas_uid, $oData->index);
            break;
        case 'showDetailsPMDWL':
            G::LoadClass('processes');
            $oProcesses = new Processes();
            $oProcesses->ws_open_public();
            $aFields = get_object_vars($oProcesses->ws_processGetData($oData->pro_uid));

            $aFields['description'] = nl2br($aFields['description']);
            $aFields['installSteps'] = nl2br($aFields['installSteps']);
Ejemplo n.º 6
0
	$('div.upload p.secondary a.preview').click(function(){
		$(this).parent().parent().find('a.thumb.preview').click();
		return false;
	});
});
</script>
<div id="flowplayer" style="overflow: hidden;"></div>
<div id="imageviewer" style="overflow: hidden;"></div>
<div id="flashviewer"></div>
<?php 
function getUploadCssClass($ext)
{
    $className = '';
    switch ($ext) {
        case 'jpg':
        case 'jpeg':
        case 'png':
        case 'gif':
            $className = 'image';
            break;
        case 'mp3':
            $className = 'audio';
            break;
        case 'fla':
        case 'swf':
        case 'flv':
            $className = 'flash';
            break;
        case 'mpeg':
        case 'mp4':
        case '3gp':
Ejemplo n.º 7
0
function formatEvent($event, $showProject = false)
{
    switch ($event->getEventTypeID()) {
        case 'create_user':
            $formatted = sprintf("%s registered for %s.", formatUserLink($event->getUser1ID()), '<a href="' . Url::base() . '">' . PIPELINE_NAME . '</a>');
            break;
        case 'send_message':
            $formatted = sprintf("%s sent a message to %s.", formatUserLink($event->getUser1ID()), formatUserLink($event->getUser2ID()));
            break;
        case 'accept_member_invitation':
            $predicate = $showProject ? 'the project ' . formatProjectLink($event->getProjectID()) : "this project";
            $formatted = sprintf("%s accepted %s's invitation to join %s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), formatUserLink($event->getUser2ID(), $event->getProjectID()), $predicate);
            break;
        case 'trust_member':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s trusted %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), formatUserLink($event->getUser2ID(), $event->getProjectID()), $predicate);
            break;
        case 'untrust_member':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s untrusted %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), formatUserLink($event->getUser2ID(), $event->getProjectID()), $predicate);
            break;
        case 'join_project':
            $predicate = $showProject ? ' ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s joined the project%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), $predicate);
            break;
        case 'leave_project':
            $predicate = $showProject ? ' ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s left the project%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), $predicate);
            break;
        case 'follow_project':
            $predicate = $showProject ? ' ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s followed the project%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), $predicate);
            break;
        case 'unfollow_project':
            $predicate = $showProject ? ' ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s unfollowed the project%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), $predicate);
            break;
        case 'ban_user':
            $predicate = $showProject ? ' from the project ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s banned %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), formatUserLink($event->getUser2ID(), $event->getProjectID()), $predicate);
            break;
        case 'unban_user':
            $predicate = $showProject ? ' from the project ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s unbanned %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), formatUserLink($event->getUser2ID(), $event->getProjectID()), $predicate);
            break;
        case 'create_project':
            $predicate = $showProject ? 'the project ' . formatProjectLink($event->getProjectID()) : 'this project';
            $formatted = sprintf("%s created %s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), formatProjectLink($event->getProjectID()));
            break;
        case 'edit_pitch':
            $predicate = $showProject ? ' for the project ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s edited the %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . Url::pitch($event->getProjectID()) . '">pitch</a>', $predicate);
            break;
        case 'edit_specs':
            $predicate = $showProject ? ' for the project ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s edited the %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . Url::specs($event->getProjectID()) . '">specs</a>', $predicate);
            break;
        case 'edit_rules':
            $predicate = $showProject ? ' for the project ' . formatProjectLink($event->getProjectID()) : '';
            $formatted = sprintf("%s edited the %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . Url::rules($event->getProjectID()) . '">rules</a>', $predicate);
            break;
        case 'edit_project_status':
            $predicate = $showProject ? 'the project ' . formatProjectLink($event->getProjectID()) : 'this project';
            $status = $event->getData2();
            $formatted = sprintf("%s changed the %s of %s to &ldquo;%s.&rdquo;", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . Url::status($event->getProjectID()) . '">status</a>', $predicate, formatProjectStatus($status));
            break;
        case 'edit_project_deadline':
            $deadline = $event->getData2();
            if ($deadline != null) {
                $predicate = $showProject ? 'the project ' . formatProjectLink($event->getProjectID()) : 'this project';
                $formatted = sprintf("%s changed the %s of %s to %s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . Url::deadline($event->getProjectID()) . '">deadline</a>', $predicate, strftime("%a, %b %d, %Y", strtotime($deadline)));
            } else {
                $predicate = $showProject ? 'the project ' . formatProjectLink($event->getProjectID()) : 'this project';
                $formatted = sprintf("%s removed the %s for %s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . Url::deadline($event->getProjectID()) . '">deadline</a>', $predicate);
            }
            break;
        case 'create_discussion':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $discussion = Discussion::load($event->getItem1ID());
            $title = $discussion->getTitle();
            $url = Url::discussion($discussion->getID());
            $formatted = sprintf("%s posted the discussion %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'lock_discussion':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $discussion = Discussion::load($event->getItem1ID());
            $title = $discussion->getTitle();
            $url = Url::discussion($discussion->getID());
            $formatted = sprintf("%s locked the discussion %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'unlock_discussion':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $discussion = Discussion::load($event->getItem1ID());
            $title = $discussion->getTitle();
            $url = Url::discussion($discussion->getID());
            $formatted = sprintf("%s unlocked the discussion %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'create_discussion_reply':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $discussion = Discussion::load($event->getItem2ID());
            $title = $discussion->getTitle();
            $url = Url::discussion($discussion->getID());
            $formatted = sprintf("%s replied to the discussion %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'create_task':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $task = Task::load($event->getItem1ID());
            $title = $task->getTitle();
            $url = Url::task($task->getID());
            $formatted = sprintf("%s created the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'edit_task_title':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $task = Task::load($event->getItem1ID());
            $title = $task->getTitle();
            $url = Url::task($task->getID());
            $formatted = sprintf("%s edited the name of the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'edit_task_status':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $task = Task::load($event->getItem1ID());
            $title = $task->getTitle();
            $url = Url::task($task->getID());
            $status = $event->getData2();
            if ($status == Task::STATUS_CLOSED) {
                $formatted = sprintf("%s closed the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            } else {
                $formatted = sprintf("%s opened the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            }
            break;
        case 'edit_task_num_needed':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $task = Task::load($event->getItem1ID());
            $title = $task->getTitle();
            $url = Url::task($task->getID());
            $numNeeded = $event->getData2();
            if ($numNeeded != '') {
                $formatted = sprintf("%s changed the # people needed for the task %s%s to %s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate, $numNeeded);
            } else {
                $formatted = sprintf("%s changed the # people needed for the task %s%s to &#8734;.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate, $numNeeded);
            }
            break;
        case 'edit_task_leader':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $task = Task::load($event->getItem1ID());
            $title = $task->getTitle();
            $url = Url::task($task->getID());
            $formatted = sprintf("%s changed the leader of the task %s%s to %s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate, formatUserLink($event->getUser2ID(), $event->getProjectID()));
            break;
        case 'edit_task_description':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $task = Task::load($event->getItem1ID());
            $title = $task->getTitle();
            $url = Url::task($task->getID());
            $formatted = sprintf("%s edited the instructions for the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'edit_task_uploads':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $task = Task::load($event->getItem1ID());
            $title = $task->getTitle();
            $url = Url::task($task->getID());
            $formatted = sprintf("%s edited the attached files for the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'edit_task_deadline':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $task = Task::load($event->getItem1ID());
            $title = $task->getTitle();
            $url = Url::task($task->getID());
            $deadline = $event->getData2();
            if ($deadline != '') {
                $formatted = sprintf("%s changed the deadline for the task %s%s to %s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate, strftime("%a, %b %d, %Y", strtotime($deadline)));
            } else {
                $formatted = sprintf("%s removed the deadline for the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            }
            break;
        case 'accept_task':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $accepted = Accepted::load($event->getItem1ID());
            //$acceptedUrl = Url::updates($accepted->getID());
            $task = Task::load($event->getItem2ID());
            $taskTitle = $task->getTitle();
            $taskUrl = Url::task($task->getID());
            $formatted = sprintf("%s joined the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $taskUrl . '">' . $taskTitle . '</a>', $predicate);
            break;
        case 'release_task':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $accepted = Accepted::load($event->getItem1ID());
            //$acceptedUrl = Url::updates($accepted->getID());
            $task = Task::load($event->getItem2ID());
            $taskTitle = $task->getTitle();
            $taskUrl = Url::task($task->getID());
            $formatted = sprintf("%s left the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $taskUrl . '">' . $taskTitle . '</a>', $predicate);
            break;
        case 'edit_accepted_status':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $update = Update::load($event->getItem1ID());
            $updateTitle = $update->getTitle();
            $updateUrl = Url::update($update->getID());
            $accepted = Accepted::load($event->getItem2ID());
            $task = Task::load($event->getItem3ID());
            $taskTitle = $task->getTitle();
            $taskUrl = Url::task($task->getID());
            $status = $event->getData2();
            if ($status == Accepted::STATUS_FEEDBACK) {
                $formatted = sprintf("%s is seeking feedback on his/her work on the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $taskUrl . '">' . $taskTitle . '</a>', $predicate);
            } elseif ($status == Accepted::STATUS_COMPLETED) {
                $formatted = sprintf("%s is finished working on the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $taskUrl . '">' . $taskTitle . '</a>', $predicate);
            } elseif ($status == Accepted::STATUS_PROGRESS) {
                $formatted = sprintf("%s is working on the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $taskUrl . '">' . $taskTitle . '</a>', $predicate);
            }
            break;
        case 'create_task_comment':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $task = Task::load($event->getItem2ID());
            $title = $task->getTitle();
            $url = Url::task($task->getID());
            $formatted = sprintf("%s commented on the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'create_task_comment_reply':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $task = Task::load($event->getItem3ID());
            $title = $task->getTitle();
            $url = Url::task($task->getID());
            $formatted = sprintf("%s replied to a comment on the task %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'create_update_comment':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $update = Update::load($event->getItem2ID());
            $title = $update->getTitle();
            $url = Url::update($update->getID());
            $formatted = sprintf("%s commented on the contribution %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'create_update_comment_reply':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $update = Update::load($event->getItem3ID());
            $title = $update->getTitle();
            $url = Url::update($update->getID());
            $formatted = sprintf("%s replied to a comment on the contribution %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $url . '">' . $title . '</a>', $predicate);
            break;
        case 'create_update':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $update = Update::load($event->getItem1ID());
            $updateTitle = $update->getTitle();
            $updateUrl = Url::update($update->getID());
            $formatted = sprintf("%s created the contribution %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $updateUrl . '">' . $updateTitle . '</a>', $predicate);
            break;
        case 'edit_update_title':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $update = Update::load($event->getItem1ID());
            $updateTitle = $update->getTitle();
            $updateUrl = Url::update($update->getID());
            $formatted = sprintf("%s edited the title of the contribution %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $updateUrl . '">' . $updateTitle . '</a>', $predicate);
            break;
        case 'edit_update_message':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $update = Update::load($event->getItem1ID());
            $updateTitle = $update->getTitle();
            $updateUrl = Url::update($update->getID());
            $formatted = sprintf("%s edited the contents of the contribution %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $updateUrl . '">' . $updateTitle . '</a>', $predicate);
            break;
        case 'edit_update_uploads':
            $predicate = $showProject ? ' in the project ' . formatProjectLink($event->getProjectID()) : '';
            $update = Update::load($event->getItem1ID());
            $updateTitle = $update->getTitle();
            $updateUrl = Url::update($update->getID());
            $formatted = sprintf("%s edited the attached files for the contribution %s%s.", formatUserLink($event->getUser1ID(), $event->getProjectID()), '<a href="' . $updateUrl . '">' . $updateTitle . '</a>', $predicate);
            break;
        default:
            $formatted = 'Event type "' . $event->getEventTypeID() . '" not found.';
    }
    return $formatted;
}
Ejemplo n.º 8
0
         $aFields['ROU_CASE'] = $iKey;
         $aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
         $aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
         if (isset($aRow['ROU_OPTIONAL']) && trim($aRow['ROU_OPTIONAL']) != '' && ($aRow['ROU_OPTIONAL'] === 'TRUE' || $aRow['ROU_OPTIONAL'] === 'FALSE')) {
             $aFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL'];
         }
         $rou_id = $oRoute->create($aFields);
         if ($aRow['ROU_NEXT_TASK'] == '-1') {
             if ($aRow['ROU_CONDITION'] == '') {
                 $tasksAffected .= 'From -> ' . $titleTask . ' : ' . $aData['TASK'] . ' To End Of Process  Condition -> Empty; ';
             } else {
                 $tasksAffected .= 'From -> ' . $titleTask . ' : ' . $aData['TASK'] . ' To End Of Process Condition -> ' . $aFields['ROU_CONDITION'] . ' ; ';
             }
         } else {
             $oTaskSaveNextPattern = new Task();
             $taskNextInfo = $oTaskSaveNextPattern->load($aRow['ROU_NEXT_TASK']);
             $titleNextTask = $taskNextInfo['TAS_TITLE'];
             if ($aRow['ROU_CONDITION'] == '') {
                 $tasksAffected .= 'From -> ' . $titleTask . ' : ' . $aData['TASK'] . ' To -> ' . $titleNextTask . ' : ' . $aRow['ROU_NEXT_TASK'] . ' Condition -> Empty ; ';
             } else {
                 $tasksAffected .= 'From -> ' . $titleTask . ' : ' . $aData['TASK'] . ' To -> ' . $titleNextTask . ' : ' . $aRow['ROU_NEXT_TASK'] . ' Condition -> ' . $aFields['ROU_CONDITION'] . ' ; ';
             }
         }
         unset($aFields);
     }
     $oProcessNewPattern = new Process();
     $processInfo = $oProcessNewPattern->load($aData['PROCESS']);
     $titleProcess = $processInfo['PRO_TITLE'];
     G::auditLog("DerivationRule", 'PROCESS NAME : ' . $titleProcess . ' : ' . $aData['PROCESS'] . ' Change Routing Rule From : ' . $aData['ROU_TYPE'] . ' Details : ROU_TYPE_OLD -> ' . $aData['ROU_TYPE_OLD'] . ' ROU_TYPE ->' . $aData['ROU_TYPE'] . ' ' . $tasksAffected);
     break;
 case 'DISCRIMINATOR':
Ejemplo n.º 9
0
    function getDerivatedCases ($sParentUid, $sDelIndexParent)

    {

        $oCriteria = new Criteria( 'workflow' );

        $cases = array ();

        $derivation = array ();

        //get the child delegations , of parent delIndex

        $children = array ();

        $oCriteria->clearSelectColumns();

        $oCriteria->addSelectColumn( AppDelegationPeer::DEL_INDEX );

        $oCriteria->add( AppDelegationPeer::APP_UID, $sParentUid );

        $oCriteria->add( AppDelegationPeer::DEL_PREVIOUS, $sDelIndexParent );

        $oDataset = AppDelegationPeer::doSelectRS( $oCriteria );

        $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );

        $oDataset->next();

        $aRow = $oDataset->getRow();

        while (is_array( $aRow )) {

            $children[] = $aRow['DEL_INDEX'];



            $oDataset->next();

            $aRow = $oDataset->getRow();

        }



        //foreach child , get the info of their derivations and subprocesses

        foreach ($children as $keyChild => $child) {

            $oCriteria = new Criteria( 'workflow' );

            $oCriteria->clearSelectColumns();

            $oCriteria->addSelectColumn( SubApplicationPeer::APP_UID );

            $oCriteria->addSelectColumn( AppDelegationPeer::APP_UID );

            $oCriteria->addSelectColumn( AppDelegationPeer::DEL_INDEX );

            $oCriteria->addSelectColumn( AppDelegationPeer::PRO_UID );

            $oCriteria->addSelectColumn( AppDelegationPeer::TAS_UID );

            $oCriteria->addSelectColumn( AppDelegationPeer::USR_UID );

            $oCriteria->addSelectColumn( UsersPeer::USR_USERNAME );

            $oCriteria->addSelectColumn( UsersPeer::USR_FIRSTNAME );

            $oCriteria->addSelectColumn( UsersPeer::USR_LASTNAME );



            $oCriteria->add( SubApplicationPeer::APP_PARENT, $sParentUid );

            $oCriteria->add( SubApplicationPeer::DEL_INDEX_PARENT, $child );

            $oCriteria->addJoin( SubApplicationPeer::APP_UID, AppDelegationPeer::APP_UID );

            $oCriteria->addJoin( AppDelegationPeer::USR_UID, UsersPeer::USR_UID );

            $oDataset = SubApplicationPeer::doSelectRS( $oCriteria );

            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );

            $oDataset->next();

            $aRow = $oDataset->getRow();

            while (is_array( $aRow )) {

                $oProcess = new Process();

                $proFields = $oProcess->load( $aRow['PRO_UID'] );

                $oCase = new Application();

                $appFields = $oCase->load( $aRow['APP_UID'] );

                $oTask = new Task();

                $tasFields = $oTask->load( $aRow['TAS_UID'] );

                $derivation[] = array ('processId' => $aRow['PRO_UID'],'processTitle' => $proFields['PRO_TITLE'],'caseId' => $aRow['APP_UID'],'caseNumber' => $appFields['APP_NUMBER'],'taskId' => $aRow['TAS_UID'],'taskTitle' => $tasFields['TAS_TITLE'],'userId' => $aRow['USR_UID'],'userName' => $aRow['USR_USERNAME'],'userFullname' => $aRow['USR_FIRSTNAME'] . ' ' . $aRow['USR_LASTNAME']

                );



                $oDataset->next();

                $aRow = $oDataset->getRow();

            }

        }



        return $derivation;

    }
global $G_FORM;
$sPRO_UID = $oData->PRO_UID;
$sTASKS = $oData->TASKS;
$sDYNAFORM = $oData->DYNAFORM;
$sWE_TYPE = $oData->WE_TYPE;
$sWS_USER = $oData->WS_USER;
$sWS_PASS = $oData->WS_PASS;
$sWS_ROUNDROBIN = $oData->WS_ROUNDROBIN;
$sWE_USR = $oData->WE_USR;
$withWS = $sWE_TYPE == 'WS';
G::LoadClass("system");
try {
    $pathProcess = PATH_DATA_SITE . 'public' . PATH_SEP . $sPRO_UID . PATH_SEP;
    G::mk_dir($pathProcess, 0777);
    $oTask = new Task();
    $TaskFields = $oTask->load($sTASKS);
    $WE_EVN_UID = $oTask->getStartingEvent($sTASKS);
    if ($TaskFields['TAS_ASSIGN_TYPE'] != 'BALANCED') {
        throw new Exception("The task '" . $TaskFields['TAS_TITLE'] . "' doesn't have a valid assignment type. The task needs to have a 'Cyclical Assignment'.");
    }
    G::LoadClass('tasks');
    $oTask = new Tasks();
    $user = $oTask->assignUsertoTask($sTASKS);
    if ($user == 0) {
        throw new Exception(G::LoadTranslation('ID_TASK') . "'" . $TaskFields['TAS_TITLE'] . "'" . G::LoadTranslation('ID_NOT_HAVE_USERS'));
    }
    $http = G::is_https() ? "https://" : "http://";
    $sContent = '';
    $infoProcess = new Process();
    $resultProcess = $infoProcess->load($sPRO_UID);
    if ($withWS) {
Ejemplo n.º 11
0
    public function getTaskDescription ()
    {
        $c = new Criteria( 'workflow' );
        $c->clearSelectColumns();
        $c->addSelectColumn( TaskPeer::TAS_UID );

        $oDataset = TaskPeer::doSelectRS( $c );
        $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
        $oDataset->next();
        $aRows = Array ();
        while ($aRow = $oDataset->getRow()) {
            $aRows[] = $aRow;
            $oDataset->next();
        }
        foreach ($aRows as $k => $aRow) {

            $oTask = new Task();
            $aTaskRow = $oTask->load( $aRow['TAS_UID'] );

            $aRows[$k] = array_merge( $aRow, array ('TAS_TITLE' => $aTaskRow['TAS_TITLE']
            ), array ('PRO_UID' => $aTaskRow['PRO_UID']
            ) );
        }
        return $aRows;
    }
Ejemplo n.º 12
0
    $cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE);
    $oDataset = AppCacheViewPeer::doSelectRS($cProcess);
    $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
    $oDataset->next();
    while ($aRow = $oDataset->getRow()) {
        $processes[] = array($aRow['PRO_UID'], $aRow['APP_PRO_TITLE']);
        $oDataset->next();
    }
    return print G::json_encode($processes);
}
if ($actionAjax == "getUsersToReassign") {
    $_SESSION['TASK'] = $_REQUEST['TAS_UID'];
    $case = new Cases();
    G::LoadClass('tasks');
    $task = new Task();
    $tasks = $task->load($_SESSION['TASK']);
    $result->data = $case->getUsersToReassign($_SESSION['TASK'], $_SESSION['USER_LOGGED'], $tasks['PRO_UID']);
    print G::json_encode($result);
}
if ($actionAjax == 'reassignCase') {
    $APP_UID = $_REQUEST["APP_UID"];
    $DEL_INDEX = $_REQUEST["DEL_INDEX"];
    $_SESSION['APPLICATION'] = $APP_UID;
    $_SESSION['INDEX'] = $DEL_INDEX;
    $cases = new Cases();
    $user = new Users();
    $app = new Application();
    $TO_USR_UID = $_POST['USR_UID'];
    try {
        $cases->reassignCase($_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['USER_LOGGED'], $TO_USR_UID);
        $caseData = $app->load($_SESSION['APPLICATION']);
Ejemplo n.º 13
0
 /**
  * Get process and task properties
  *
  * @param object $httpData{type, UID}
  */
 public function getProperties($httpData)
 {
     switch ($httpData->type) {
         case 'process':
             require_once 'classes/model/ProcessCategory.php';
             require_once 'classes/model/CalendarDefinition.php';
             G::LoadClass('processMap');
             $oProcessMap = new processMap(new DBConnection());
             $process = $oProcessMap->editProcessNew($httpData->UID);
             $category = ProcessCategoryPeer::retrieveByPk($process['PRO_CATEGORY']);
             $categoryName = is_object($category) ? $category->getCategoryName() : '';
             $calendar = CalendarDefinitionPeer::retrieveByPk($process['PRO_CALENDAR']);
             $calendarName = is_object($calendar) ? $calendar->getCalendarName() : '';
             $properties['Title'] = $process['PRO_TITLE'];
             $properties['Description'] = $process['PRO_DESCRIPTION'];
             $properties['Calendar'] = $calendarName;
             $properties['Category'] = $categoryName;
             $properties['Debug'] = $process['PRO_DEBUG'] == '1' ? true : false;
             $this->sucess = true;
             $this->prop = $properties;
             break;
         case 'task':
             require_once 'classes/model/Task.php';
             $task = new Task();
             $taskData = $task->load($httpData->UID);
             $properties['Title'] = $taskData['TAS_TITLE'];
             $properties['Description'] = $taskData['TAS_DESCRIPTION'];
             $properties['Variable for case priority'] = $taskData['TAS_PRIORITY_VARIABLE'];
             $properties['Starting Task'] = $taskData['TAS_START'] == 'TRUE' ? true : false;
             $this->sucess = true;
             $this->prop = $properties;
             break;
     }
 }
Ejemplo n.º 14
0
    /**
     * Get available Triggers of a Step
     *
     * @param string $stepUid Unique id of Step
     * @param string $type    Type (BEFORE, AFTER, BEFORE_ASSIGNMENT, BEFORE_ROUTING, AFTER_ROUTING)
     * @param string $taskUid Unique id of Task
     *
     * return array Return an array with the Triggers available of a Step
     */
    public function getAvailableTriggers($stepUid, $type, $taskUid = "")
    {
        try {
            $arrayAvailableTrigger = array();

            //Verify data
            if ($stepUid != "") {
                $this->throwExceptionIfNotExistsStep($stepUid);
            }

            if ($stepUid == "") {
                $this->throwExceptionIfNotExistsTask($taskUid);
            }

            //Get data
            $trigger = new \ProcessMaker\BusinessModel\Trigger();

            $flagStepAssignTask = 0;

            if ($stepUid != "") {
                //Load Step
                $step = new \Step();

                $arrayStepData = $step->load($stepUid);

                $processUid = $arrayStepData["PRO_UID"];
            } else {
                //Load Task
                $task = new \Task();

                $arrayTaskData = $task->load($taskUid);

                $processUid = $arrayTaskData["PRO_UID"];

                //Set variables
                $flagStepAssignTask = 1;

                switch ($type) {
                    case "BEFORE_ASSIGNMENT":
                        $stepUid = "-1";
                        $type = "BEFORE";
                        break;
                    case "BEFORE_ROUTING":
                        $stepUid = "-2";
                        $type = "BEFORE";
                        break;
                    case "AFTER_ROUTING":
                        $stepUid = "-2";
                        $type = "AFTER";
                        break;
                }
            }

            //Get data
            //Get Uids
            $arrayUid = array();

            $criteria = new \Criteria("workflow");

            $criteria->addSelectColumn(\StepTriggerPeer::TRI_UID);
            $criteria->add(\StepTriggerPeer::STEP_UID, $stepUid, \Criteria::EQUAL);

            if ($flagStepAssignTask == 1) {
                $criteria->add(\StepTriggerPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
            }

            $criteria->add(\StepTriggerPeer::ST_TYPE, $type, \Criteria::EQUAL);

            $rsCriteria = \StepTriggerPeer::doSelectRS($criteria);
            $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);

            while ($rsCriteria->next()) {
                $row = $rsCriteria->getRow();

                $arrayUid[] = $row["TRI_UID"];
            }

            //Criteria
            $criteria = $trigger->getTriggerCriteria();

            $criteria->add(\TriggersPeer::TRI_UID, $arrayUid, \Criteria::NOT_IN);
            $criteria->add(\TriggersPeer::PRO_UID, $processUid, \Criteria::EQUAL);
            $criteria->addAscendingOrderByColumn("TRI_TITLE");

            $rsCriteria = \TriggersPeer::doSelectRS($criteria);
            $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);

            while ($rsCriteria->next()) {
                $row = $rsCriteria->getRow();

                $arrayAvailableTrigger[] = array(
                    $this->getFieldNameByFormatFieldName("TRI_UID")         => $row["TRI_UID"],
                    $this->getFieldNameByFormatFieldName("TRI_TITLE")       => $row["TRI_TITLE"],
                    $this->getFieldNameByFormatFieldName("TRI_DESCRIPTION") => $row["TRI_DESCRIPTION"],
                    $this->getFieldNameByFormatFieldName("TRI_TYPE")        => $row["TRI_TYPE"],
                    $this->getFieldNameByFormatFieldName("TRI_WEBBOT")      => $row["TRI_WEBBOT"],
                    $this->getFieldNameByFormatFieldName("TRI_PARAM")       => $row["TRI_PARAM"]
                );
            }

            //Return
            return $arrayAvailableTrigger;
        } catch (\Exception $e) {
            throw $e;
        }
    }
Ejemplo n.º 15
0
<?php

try {
    require_once "classes/model/Task.php";
    require_once "classes/model/Users.php";
    G::LoadClass('case');
    G::LoadClass('derivation');
    $oTask = new Task();
    $TaskFields = $oTask->load($_POST['TASKS']);
    $aDerivation['NEXT_TASK'] = $TaskFields;
    $oDerivation = new Derivation();
    $deriva = $oDerivation->getNextAssignedUser($aDerivation);
    $oCase = new Cases();
    $aData = $oCase->startCase($_POST['TASKS'], $deriva['USR_UID']);
    $case = $oCase->loadCase($aData['APPLICATION'], 1);
    $Fields = array();
    $Fields['APP_NUMBER'] = $case['APP_NUMBER'];
    $Fields['APP_PROC_STATUS'] = 'draft';
    $Fields['APP_DATA'] = $_POST['form'];
    $Fields['DEL_INDEX'] = 1;
    $Fields['TAS_UID'] = $_POST['TASKS'];
    //$Fields = $oCase->loadCase($aData['APPLICATION'], 1);
    $oCase->updateCase($aData['APPLICATION'], $Fields);
    $s = 0;
    if (isset($_SERVER['HTTP_REFERER'])) {
        $dir = explode('?', $_SERVER['HTTP_REFERER']);
        if ($dir[1] == '__flag__=1') {
            $s = 1;
        } else {
            $dire = explode('&', $dir[1]);
            for ($i = 0; $i <= count($dire); $i++) {
Ejemplo n.º 16
0
 /**
  * Delete all routes from a task
  * @param string $sProcessUID
  * @param string $sTaskUID
  * @return boolean
  */
 public function deleteAllGatewayOfTask($sProcessUID = '', $sTaskUID = '', $bAll = false)
 {
     try {
         $oProcess = new Process();
         $aFields = $oProcess->load($sProcessUID);
         $oTask = new Task();
         $aFields = $oTask->load($sTaskUID);
         $oCriteria = new Criteria('workflow');
         $oCriteria->add(GatewayPeer::PRO_UID, $sProcessUID);
         $oCriteria->add(GatewayPeer::TAS_UID, $sTaskUID);
         GatewayPeer::doDelete($oCriteria);
         if ($bAll) {
             $oCriteria = new Criteria('workflow');
             $oCriteria->add(GatewayPeer::PRO_UID, $sProcessUID);
             $oCriteria->add(GatewayPeer::GAT_NEXT_TASK, $sTaskUID);
             GatewayPeer::doDelete($oCriteria);
         }
         return true;
     } catch (Exception $oError) {
         throw $oError;
     }
 }
Ejemplo n.º 17
0
 function save($params)
 {
     require_once 'classes/model/Event.php';
     global $G_FORM;
     $sPRO_UID = $params->pro_uid;
     $sEVN_UID = $params->evn_uid;
     $sDYNAFORM = $params->initDyna;
     $sWS_USER = trim($params->username);
     $sWS_PASS = trim($params->password);
     $sWS_ROUNDROBIN = '';
     $sWE_USR = '';
     $xDYNA = $params->dynaform;
     if ($xDYNA != '') {
         $pro_uid = $params->pro_uid;
         $filename = $xDYNA;
         $filename = $filename . '.php';
         unlink(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $pro_uid . PATH_SEP . $filename);
         unlink(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $pro_uid . PATH_SEP . str_replace(".php", "Post", $filename) . ".php");
     }
     //return $params;
     G::LoadClass("system");
     $pathProcess = PATH_DATA_SITE . 'public' . PATH_SEP . $sPRO_UID . PATH_SEP;
     G::mk_dir($pathProcess, 0777);
     $oEvent = new Event();
     $oEvent->load($sEVN_UID);
     $sTASKS = $oEvent->getEvnTasUidTo();
     $oTask = new Task();
     $oTask->load($sTASKS);
     $tas_title = $oTask->getTasTitle();
     if (G::is_https()) {
         $http = 'https://';
     } else {
         $http = 'http://';
     }
     $sContent = '';
     $SITE_PUBLIC_PATH = '';
     if (file_exists($SITE_PUBLIC_PATH . '')) {
     }
     require_once 'classes/model/Dynaform.php';
     $oDynaform = new Dynaform();
     $aDynaform = $oDynaform->load($sDYNAFORM);
     $dynTitle = str_replace(' ', '_', str_replace('/', '_', $aDynaform['DYN_TITLE']));
     $sContent = "<?php\n";
     $sContent .= "global \$_DBArray;\n";
     $sContent .= "if (!isset(\$_DBArray)) {\n";
     $sContent .= "  \$_DBArray = array();\n";
     $sContent .= "}\n";
     $sContent .= "\$_SESSION['PROCESS'] = '" . $sPRO_UID . "';\n";
     $sContent .= "\$_SESSION['CURRENT_DYN_UID'] = '" . $sDYNAFORM . "';\n";
     $sContent .= "\$G_PUBLISH = new Publisher;\n";
     $sContent .= "\$G_PUBLISH->AddContent('dynaform', 'xmlform', '" . $sPRO_UID . '/' . $sDYNAFORM . "', '', array(), '" . $dynTitle . 'Post.php' . "');\n";
     $sContent .= "G::RenderPage('publish', 'blank');";
     file_put_contents($pathProcess . $dynTitle . '.php', $sContent);
     //creating the second file, the  post file who receive the post form.
     $pluginTpl = PATH_CORE . 'templates' . PATH_SEP . 'processes' . PATH_SEP . 'webentryPost.tpl';
     $template = new TemplatePower($pluginTpl);
     $template->prepare();
     $template->assign('wsdlUrl', $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/services/wsdl2');
     $template->assign('wsUploadUrl', $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/services/upload');
     $template->assign('processUid', $sPRO_UID);
     $template->assign('dynaformUid', $sDYNAFORM);
     $template->assign('taskUid', $sTASKS);
     $template->assign('wsUser', $sWS_USER);
     $template->assign('wsPass', 'md5:' . md5($sWS_PASS));
     $template->assign('wsRoundRobin', $sWS_ROUNDROBIN);
     if ($sWE_USR == "2") {
         $template->assign('USR_VAR', "\$cInfo = ws_getCaseInfo(\$caseId);\n\t  \$USR_UID = \$cInfo->currentUsers->userId;");
     } else {
         $template->assign('USR_VAR', '$USR_UID = -1;');
     }
     $template->assign('dynaform', $dynTitle);
     $template->assign('timestamp', date('l jS \\of F Y h:i:s A'));
     $template->assign('ws', SYS_SYS);
     $template->assign('version', System::getVersion());
     $fileName = $pathProcess . $dynTitle . 'Post.php';
     file_put_contents($fileName, $template->getOutputContent());
     //creating the third file, only if this wsClient.php file doesn't exists.
     $fileName = $pathProcess . 'wsClient.php';
     $pluginTpl = PATH_CORE . 'test' . PATH_SEP . 'unit' . PATH_SEP . 'ws' . PATH_SEP . 'wsClient.php';
     if (file_exists($fileName)) {
         if (filesize($fileName) != filesize($pluginTpl)) {
             @copy($fileName, $pathProcess . 'wsClient.php.bck');
             @unlink($fileName);
             $template = new TemplatePower($pluginTpl);
             $template->prepare();
             file_put_contents($fileName, $template->getOutputContent());
         }
     } else {
         $template = new TemplatePower($pluginTpl);
         $template->prepare();
         file_put_contents($fileName, $template->getOutputContent());
     }
     require_once 'classes/model/Event.php';
     $oEvent = new Event();
     $aDataEvent = array();
     $aDataEvent['EVN_UID'] = $sEVN_UID;
     $aDataEvent['EVN_RELATED_TO'] = 'MULTIPLE';
     $aDataEvent['EVN_ACTION'] = $sDYNAFORM;
     $aDataEvent['EVN_CONDITIONS'] = $sWS_USER;
     $output = $oEvent->update($aDataEvent);
     $link = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/' . $sPRO_UID . '/' . $dynTitle . '.php';
     $this->success = true;
     $this->msg = G::LoadTranslation('ID_WEB_ENTRY_SUCCESS_NEW');
     $this->W_LINK = $link;
     $this->TAS_TITLE = $tas_title;
     $this->DYN_TITLE = $dynTitle;
     $this->USR_UID = $sWS_USER;
 }
Ejemplo n.º 18
0
/**
 *
 * @method
 *
 * Returns a list of the next assigned users to a case.
 *
 * @name PMFGetNextAssignedUser
 * @label PMFGet Next Assigned User
 *
 * @param string(32) | $application | Case ID | Id of the case
 * @param string(32) | $task | Task ID | Id of the task
 * @return array | $array | List of users | Return a list of users
 *
 */
function PMFGetNextAssignedUser($application, $task, $delIndex = null, $userUid = null)
{
    require_once 'classes/model/AppDelegation.php';
    require_once 'classes/model/Task.php';
    require_once 'classes/model/TaskUser.php';
    require_once 'classes/model/Users.php';
    require_once 'classes/model/Groupwf.php';
    require_once 'classes/model/GroupUser.php';
    $oTask = new Task();
    $TaskFields = $oTask->load($task);
    $typeTask = $TaskFields['TAS_ASSIGN_TYPE'];
    $g = new G();
    $g->sessionVarSave();
    $_SESSION['INDEX'] = !is_null($delIndex) ? $delIndex : (isset($_SESSION['INDEX']) ? $_SESSION['INDEX'] : null);
    $_SESSION['USER_LOGGED'] = !is_null($userUid) ? $userUid : (isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : null);
    if ($typeTask == 'BALANCED' && !is_null($_SESSION['INDEX']) && !is_null($_SESSION['USER_LOGGED'])) {
        G::LoadClass('derivation');
        $oDerivation = new Derivation();
        $aDeriv = $oDerivation->prepareInformation(array('USER_UID' => $_SESSION['USER_LOGGED'], 'APP_UID' => $application, 'DEL_INDEX' => $_SESSION['INDEX']));
        foreach ($aDeriv as $derivation) {
            $aUser = array('USR_UID' => $derivation['NEXT_TASK']['USER_ASSIGNED']['USR_UID'], 'USR_USERNAME' => $derivation['NEXT_TASK']['USER_ASSIGNED']['USR_USERNAME'], 'USR_FIRSTNAME' => $derivation['NEXT_TASK']['USER_ASSIGNED']['USR_FIRSTNAME'], 'USR_LASTNAME' => $derivation['NEXT_TASK']['USER_ASSIGNED']['USR_LASTNAME'], 'USR_EMAIL' => $derivation['NEXT_TASK']['USER_ASSIGNED']['USR_EMAIL']);
            $aUsers[] = $aUser;
        }
        $g->sessionVarRestore();
        if (count($aUsers) == 1) {
            return $aUser;
        } else {
            return $aUsers;
        }
    } else {
        $g->sessionVarRestore();
        return false;
    }
}
Ejemplo n.º 19
0
 /**
  * get the case summary data
  *
  * @param string $httpData->appUid
  * @param string $httpData->delIndex
  * @return array containg the case summary data
  */
 function getSummary($httpData)
 {
     $labels = array();
     $form = new Form('cases/cases_Resume', PATH_XMLFORM, SYS_LANG);
     G::LoadClass('case');
     $case = new Cases();
     foreach ($form->fields as $fieldName => $field) {
         $labels[$fieldName] = $field->label;
     }
     if (isset($_SESSION['_applicationFields']) && $_SESSION['_processData']) {
         $applicationFields = $_SESSION['_applicationFields'];
         unset($_SESSION['_applicationFields']);
         $processData = $_SESSION['_processData'];
         unset($_SESSION['_processData']);
     } else {
         if ($httpData->action == 'sent') {
             // Get the last valid delegation for participated list
             $criteria = new Criteria();
             $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX);
             $criteria->add(AppDelegationPeer::APP_UID, $httpData->appUid);
             $criteria->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
             $criteria->addDescendingOrderByColumn(AppDelegationPeer::DEL_INDEX);
             if (AppDelegationPeer::doCount($criteria) > 0) {
                 $dataset = AppDelegationPeer::doSelectRS($criteria);
                 $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
                 $dataset->next();
                 $row = $dataset->getRow();
                 $httpData->delIndex = $row['DEL_INDEX'];
             }
         }
         $applicationFields = $case->loadCase($httpData->appUid, $httpData->delIndex);
         $process = new Process();
         $processData = $process->load($applicationFields['PRO_UID']);
     }
     $data = array();
     $task = new Task();
     $taskData = $task->load($applicationFields['TAS_UID']);
     $currentUser = $applicationFields['CURRENT_USER'] != '' ? $applicationFields['CURRENT_USER'] : '******' . G::LoadTranslation('ID_UNASSIGNED') . ']';
     $data[] = array('label' => $labels['PRO_TITLE'], 'value' => $processData['PRO_TITLE'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['TITLE'], 'value' => $applicationFields['TITLE'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['APP_NUMBER'], 'value' => $applicationFields['APP_NUMBER'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['STATUS'], 'value' => $applicationFields['STATUS'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['APP_UID'], 'value' => $applicationFields['APP_UID'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['CREATOR'], 'value' => $applicationFields['CREATOR'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['CREATE_DATE'], 'value' => $applicationFields['CREATE_DATE'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['UPDATE_DATE'], 'value' => $applicationFields['UPDATE_DATE'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['DESCRIPTION'], 'value' => $applicationFields['DESCRIPTION'], 'section' => $labels['TITLE1']);
     // note added by krlos pacha carlos[at]colosa[dot]com
     //getting this field if it doesn't exist. Related 7994 bug
     $taskData['TAS_TITLE'] = array_key_exists('TAS_TITLE', $taskData) ? $taskData['TAS_TITLE'] : Content::Load("TAS_TITLE", "", $applicationFields['TAS_UID'], SYS_LANG);
     $data[] = array('label' => $labels['TAS_TITLE'], 'value' => $taskData['TAS_TITLE'], 'section' => $labels['TITLE2']);
     $data[] = array('label' => $labels['CURRENT_USER'], 'value' => $currentUser, 'section' => $labels['TITLE2']);
     $data[] = array('label' => $labels['DEL_DELEGATE_DATE'], 'value' => $applicationFields['DEL_DELEGATE_DATE'], 'section' => $labels['TITLE2']);
     $data[] = array('label' => $labels['DEL_INIT_DATE'], 'value' => $applicationFields['DEL_INIT_DATE'], 'section' => $labels['TITLE2']);
     $data[] = array('label' => $labels['DEL_TASK_DUE_DATE'], 'value' => $applicationFields['DEL_TASK_DUE_DATE'], 'section' => $labels['TITLE2']);
     $data[] = array('label' => $labels['DEL_FINISH_DATE'], 'value' => $applicationFields['DEL_FINISH_DATE'], 'section' => $labels['TITLE2']);
     //$data[] = array('label'=>$labels['DYN_UID'] ,           'value' => $processData['PRO_DYNAFORMS']['PROCESS'];, 'section'=>$labels['DYN_UID']);
     return $data;
 }
Ejemplo n.º 20
0
 /**
  * get the case summary data
  * @param string $httpData->appUid 
  * @param string $httpData->delIndex
  * @return array containg the case summary data
  */
 function getSummary($httpData)
 {
     $labels = array();
     $form = new Form('cases/cases_Resume', PATH_XMLFORM, SYS_LANG);
     G::LoadClass('case');
     $case = new Cases();
     foreach ($form->fields as $fieldName => $field) {
         $labels[$fieldName] = $field->label;
     }
     if (isset($_SESSION['_applicationFields']) && $_SESSION['_processData']) {
         $applicationFields = $_SESSION['_applicationFields'];
         unset($_SESSION['_applicationFields']);
         $processData = $_SESSION['_processData'];
         unset($_SESSION['_processData']);
     } else {
         $applicationFields = $case->loadCase($httpData->appUid, $httpData->delIndex);
         $process = new Process();
         $processData = $process->load($applicationFields['PRO_UID']);
     }
     $data = array();
     $task = new Task();
     $taskData = $task->load($applicationFields['TAS_UID']);
     $currentUser = $applicationFields['CURRENT_USER'] != '' ? $applicationFields['CURRENT_USER'] : '******' . G::LoadTranslation('ID_UNASSIGNED') . ']';
     $data[] = array('label' => $labels['PRO_TITLE'], 'value' => $processData['PRO_TITLE'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['TITLE'], 'value' => $applicationFields['TITLE'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['APP_NUMBER'], 'value' => $applicationFields['APP_NUMBER'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['STATUS'], 'value' => $applicationFields['STATUS'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['APP_UID'], 'value' => $applicationFields['APP_UID'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['CREATOR'], 'value' => $applicationFields['CREATOR'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['CREATE_DATE'], 'value' => $applicationFields['CREATE_DATE'], 'section' => $labels['TITLE1']);
     $data[] = array('label' => $labels['UPDATE_DATE'], 'value' => $applicationFields['UPDATE_DATE'], 'section' => $labels['TITLE1']);
     // note added by krlos pacha carlos[at]colosa[dot]com
     //getting this field if it doesn't exist. Related 7994 bug
     $taskData['TAS_TITLE'] = array_key_exists('TAS_TITLE', $taskData) ? $taskData['TAS_TITLE'] : Content::Load("TAS_TITLE", "", $applicationFields['TAS_UID'], SYS_LANG);
     $data[] = array('label' => $labels['TAS_TITLE'], 'value' => $taskData['TAS_TITLE'], 'section' => $labels['TITLE2']);
     $data[] = array('label' => $labels['CURRENT_USER'], 'value' => $currentUser, 'section' => $labels['TITLE2']);
     $data[] = array('label' => $labels['DEL_DELEGATE_DATE'], 'value' => $applicationFields['DEL_DELEGATE_DATE'], 'section' => $labels['TITLE2']);
     $data[] = array('label' => $labels['DEL_INIT_DATE'], 'value' => $applicationFields['DEL_INIT_DATE'], 'section' => $labels['TITLE2']);
     $data[] = array('label' => $labels['DEL_TASK_DUE_DATE'], 'value' => $applicationFields['DEL_TASK_DUE_DATE'], 'section' => $labels['TITLE2']);
     $data[] = array('label' => $labels['DEL_FINISH_DATE'], 'value' => $applicationFields['DEL_FINISH_DATE'], 'section' => $labels['TITLE2']);
     //$data[] = array('label'=>$labels['DYN_UID'] ,           'value' => $processData['PRO_DYNAFORMS']['PROCESS'];, 'section'=>$labels['DYN_UID']);
     return $data;
 }
Ejemplo n.º 21
0
    /**

     * derivate Case moves the case to the next task in the process according to the routing rules

     *

     * @param string $userId

     * @param string $caseId

     * @param string $delIndex

     * @param array $tasks

     * @param bool   $bExecuteTriggersBeforeAssignment

     * @return $result will return an object

     */

    public function derivateCase ($userId, $caseId, $delIndex, $bExecuteTriggersBeforeAssignment = false, $tasks = array())

    {

        $g = new G();



        try {

            $g->sessionVarSave();



            $_SESSION["APPLICATION"] = $caseId;

            $_SESSION["INDEX"] = $delIndex;

            $_SESSION["USER_LOGGED"] = $userId;



            $sStatus = 'TO_DO';



            $varResponse = '';

            $varTriggers = "\n";



            if ($delIndex == '') {

                $oCriteria = new Criteria( 'workflow' );

                $oCriteria->addSelectColumn( AppDelegationPeer::DEL_INDEX );

                $oCriteria->add( AppDelegationPeer::APP_UID, $caseId );

                $oCriteria->add( AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL );



                if (AppDelegationPeer::doCount( $oCriteria ) > 1) {

                    $result = new wsResponse( 20, G::loadTranslation( 'ID_SPECIFY_DELEGATION_INDEX' ) );

                    return $result;

                }



                $oDataset = AppDelegationPeer::doSelectRS( $oCriteria );

                $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );

                $oDataset->next();

                $aRow = $oDataset->getRow();

                $delIndex = $aRow['DEL_INDEX'];

            }



            $oAppDel = new AppDelegation();

            $appdel = $oAppDel->Load( $caseId, $delIndex );



            if ($userId != $appdel['USR_UID']) {

                $result = new wsResponse( 17, G::loadTranslation( 'ID_CASE_ASSIGNED_ANOTHER_USER' ) );



                return $result;

            }



            if ($appdel['DEL_FINISH_DATE'] != null) {

                $result = new wsResponse( 18, G::loadTranslation( 'ID_CASE_DELEGATION_ALREADY_CLOSED' ) );



                return $result;

            }



            $oCriteria = new Criteria( 'workflow' );

            $oCriteria->addSelectColumn( AppDelayPeer::APP_UID );

            $oCriteria->addSelectColumn( AppDelayPeer::APP_DEL_INDEX );

            $oCriteria->add( AppDelayPeer::APP_TYPE, '' );

            $oCriteria->add( $oCriteria->getNewCriterion( AppDelayPeer::APP_TYPE, 'PAUSE' )->addOr( $oCriteria->getNewCriterion( AppDelayPeer::APP_TYPE, 'CANCEL' ) ) );

            $oCriteria->addAscendingOrderByColumn( AppDelayPeer::APP_ENABLE_ACTION_DATE );

            $oDataset = AppDelayPeer::doSelectRS( $oCriteria );

            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );

            $oDataset->next();

            $aRow = $oDataset->getRow();



            if (is_array( $aRow )) {

                if (isset( $aRow['APP_DISABLE_ACTION_USER'] ) && $aRow['APP_DISABLE_ACTION_USER'] != 0 && isset( $aRow['APP_DISABLE_ACTION_DATE'] ) && $aRow['APP_DISABLE_ACTION_DATE'] != '') {

                    $result = new wsResponse( 19, G::loadTranslation( 'ID_CASE_IN_STATUS' ) . " " . $aRow['APP_TYPE'] );



                    return $result;

                }

            }



            $aData = array();

            $aData['APP_UID'] = $caseId;

            $aData['DEL_INDEX'] = $delIndex;

            $aData['USER_UID'] = $userId;



            //Load data

            $oCase = new Cases();

            $appFields = $oCase->loadCase( $caseId, $delIndex );



            if (is_null( $appFields["DEL_INIT_DATE"] )) {

                $oCase->setDelInitDate( $caseId, $delIndex );

                $appFields = $oCase->loadCase( $caseId, $delIndex );

            }



            $appFields["APP_DATA"]["APPLICATION"] = $caseId;



            if (! isset( $_SESSION["PROCESS"] )) {

                $_SESSION["PROCESS"] = $appFields["PRO_UID"];

            }



            if ($bExecuteTriggersBeforeAssignment) {

                //Execute triggers before assignment

                $aTriggers = $oCase->loadTriggers( $appdel['TAS_UID'], 'ASSIGN_TASK', - 1, 'BEFORE' );



                if (count( $aTriggers ) > 0) {

                    $varTriggers = $varTriggers . "<br /><b>-= Before Assignment =-</b><br />";



                    $oPMScript = new PMScript();



                    foreach ($aTriggers as $aTrigger) {

                        //$appFields = $oCase->loadCase( $caseId );

                        //$appFields['APP_DATA']['APPLICATION'] = $caseId;





                        //Set variables

                        $params = new stdClass();

                        $params->appData = $appFields["APP_DATA"];



                        if ($this->stored_system_variables) {

                            $params->option = "STORED SESSION";

                            $params->SID = $this->wsSessionId;

                        }



                        $appFields["APP_DATA"] = array_merge( $appFields["APP_DATA"], G::getSystemConstants( $params ) );



                        //PMScript

                        $oPMScript->setFields( $appFields['APP_DATA'] );

                        $bExecute = true;



                        if ($aTrigger['ST_CONDITION'] !== '') {

                            $oPMScript->setScript( $aTrigger['ST_CONDITION'] );

                            $bExecute = $oPMScript->evaluate();

                        }



                        if ($bExecute) {

                            $oPMScript->setScript( $aTrigger['TRI_WEBBOT'] );

                            $oPMScript->execute();



                            $trigger = TriggersPeer::retrieveByPk($aTrigger["TRI_UID"]);

                            $varTriggers = $varTriggers . "&nbsp;- " . nl2br(htmlentities($trigger->getTriTitle(), ENT_QUOTES)) . "<br />";



                            //$appFields = $oCase->loadCase( $caseId );

                            $appFields['APP_DATA'] = $oPMScript->aFields;

                            unset($appFields['APP_STATUS']);

                            unset($appFields['APP_PROC_STATUS']);

                            unset($appFields['APP_PROC_CODE']);

                            unset($appFields['APP_PIN']);

                            $oCase->updateCase( $caseId, $appFields );

                        }

                    }

                }

            }



            //Execute triggers before derivation BEFORE_ROUTING

            $aTriggers = $oCase->loadTriggers( $appdel['TAS_UID'], 'ASSIGN_TASK', - 2, 'BEFORE' );



            if (count( $aTriggers ) > 0) {

                $varTriggers .= "<b>-= Before Derivation =-</b><br/>";



                $oPMScript = new PMScript();



                foreach ($aTriggers as $aTrigger) {

                    //$appFields = $oCase->loadCase( $caseId );

                    //$appFields['APP_DATA']['APPLICATION'] = $caseId;





                    //Set variables

                    $params = new stdClass();

                    $params->appData = $appFields["APP_DATA"];



                    if ($this->stored_system_variables) {

                        $params->option = "STORED SESSION";

                        $params->SID = $this->wsSessionId;

                    }



                    $appFields["APP_DATA"] = array_merge( $appFields["APP_DATA"], G::getSystemConstants( $params ) );



                    //PMScript

                    $oPMScript->setFields( $appFields['APP_DATA'] );

                    $bExecute = true;



                    if ($aTrigger['ST_CONDITION'] !== '') {

                        $oPMScript->setScript( $aTrigger['ST_CONDITION'] );

                        $bExecute = $oPMScript->evaluate();

                    }



                    if ($bExecute) {

                        $oPMScript->setScript( $aTrigger['TRI_WEBBOT'] );

                        $oPMScript->execute();



                        $oTrigger = TriggersPeer::retrieveByPk( $aTrigger['TRI_UID'] );

                        $varTriggers .= "&nbsp;- " . nl2br( htmlentities( $oTrigger->getTriTitle(), ENT_QUOTES ) ) . "<br/>";

                        //$appFields = $oCase->loadCase( $caseId );

                        $appFields['APP_DATA'] = $oPMScript->aFields;

                        unset($appFields['APP_STATUS']);

                        unset($appFields['APP_PROC_STATUS']);

                        unset($appFields['APP_PROC_CODE']);

                        unset($appFields['APP_PIN']);

                        //$appFields['APP_DATA']['APPLICATION'] = $caseId;

                        $oCase->updateCase( $caseId, $appFields );

                    }

                }

            }



            $oDerivation = new Derivation();

            if (!empty($tasks)) {

                $nextDelegations = $tasks;

            } else {

                $derive = $oDerivation->prepareInformation($aData);



                if (isset($derive[1])) {

                    if ($derive[1]['ROU_TYPE'] == 'SELECT') {

                        $result = new wsResponse(21, G::loadTranslation('ID_CAN_NOT_ROUTE_CASE_USING_WEBSERVICES'));



                        return $result;

                    }

                } else {

                    $result = new wsResponse(22, G::loadTranslation('ID_TASK_DOES_NOT_HAVE_ROUTING_RULE'));



                    return $result;

                }



                foreach ($derive as $key => $val) {

                    if ($val['NEXT_TASK']['TAS_ASSIGN_TYPE'] == 'MANUAL') {

                        $result = new wsResponse(15, G::loadTranslation('ID_TASK_DEFINED_MANUAL_ASSIGNMENT'));



                        return $result;

                    }



                    //Routed to the next task, if end process then not exist user

                    $nodeNext = array();

                    $usrasgdUid = null;

                    $usrasgdUserName = null;



                    if (isset($val['NEXT_TASK']['USER_ASSIGNED'])) {

                        $usrasgdUid = $val['NEXT_TASK']['USER_ASSIGNED']['USR_UID'];

                        $usrasgdUserName = '******' . $val['NEXT_TASK']['USER_ASSIGNED']['USR_USERNAME'] . ')';

                    }



                    $nodeNext['TAS_UID'] = $val['NEXT_TASK']['TAS_UID'];

                    $nodeNext['USR_UID'] = $usrasgdUid;

                    $nodeNext['TAS_ASSIGN_TYPE'] = $val['NEXT_TASK']['TAS_ASSIGN_TYPE'];

                    $nodeNext['TAS_DEF_PROC_CODE'] = $val['NEXT_TASK']['TAS_DEF_PROC_CODE'];

                    $nodeNext['DEL_PRIORITY'] = $appdel['DEL_PRIORITY'];

                    $nodeNext['TAS_PARENT'] = $val['NEXT_TASK']['TAS_PARENT'];



                    $nextDelegations[] = $nodeNext;

                    $varResponse = $varResponse . (($varResponse != '') ? ',' : '') . $val['NEXT_TASK']['TAS_TITLE'] . $usrasgdUserName;

                }

            }

            $appFields['DEL_INDEX'] = $delIndex;



            if (isset( $derive['TAS_UID'] )) {

                $appFields['TAS_UID'] = $derive['TAS_UID'];

            }



            //Save data - Start

            //$appFields = $oCase->loadCase( $caseId );

            //$oCase->updateCase ( $caseId, $appFields );

            //Save data - End





            $row = array ();

            $oCriteria = new Criteria( 'workflow' );

            $del = DBAdapter::getStringDelimiter();

            $oCriteria->addSelectColumn( RoutePeer::ROU_TYPE );

            $oCriteria->addSelectColumn( RoutePeer::ROU_NEXT_TASK );

            $oCriteria->add( RoutePeer::TAS_UID, $appdel['TAS_UID'] );

            $oDataset = TaskPeer::doSelectRS( $oCriteria );

            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );

            $oDataset->next();



            while ($aRow = $oDataset->getRow()) {

                $row[] = array ('ROU_TYPE' => $aRow['ROU_TYPE'],'ROU_NEXT_TASK' => $aRow['ROU_NEXT_TASK']

                );

                $oDataset->next();

            }



            //derivate case

            $aCurrentDerivation = array ('APP_UID' => $caseId,'DEL_INDEX' => $delIndex,'APP_STATUS' => $sStatus,'TAS_UID' => $appdel['TAS_UID'],'ROU_TYPE' => $row[0]['ROU_TYPE']

            );



            $oDerivation->derivate( $aCurrentDerivation, $nextDelegations );

            $appFields = $oCase->loadCase( $caseId );



            //Execute triggers after derivation

            $aTriggers = $oCase->loadTriggers( $appdel['TAS_UID'], 'ASSIGN_TASK', - 2, 'AFTER' );



            if (count( $aTriggers ) > 0) {

                //$appFields['APP_DATA']['APPLICATION'] = $caseId;





                //Set variables

                $params = new stdClass();

                $params->appData = $appFields["APP_DATA"];



                if ($this->stored_system_variables) {

                    $params->option = "STORED SESSION";

                    $params->SID = $this->wsSessionId;

                }



                $appFields["APP_DATA"] = array_merge( $appFields["APP_DATA"], G::getSystemConstants( $params ) );



                //PMScript

                $oPMScript = new PMScript();

                $oPMScript->setFields( $appFields['APP_DATA'] );



                $varTriggers .= "<b>-= After Derivation =-</b><br/>";



                foreach ($aTriggers as $aTrigger) {

                    $bExecute = true;



                    if ($aTrigger['ST_CONDITION'] !== '') {

                        $oPMScript->setScript( $aTrigger['ST_CONDITION'] );

                        $bExecute = $oPMScript->evaluate();

                    }



                    if ($bExecute) {

                        $oPMScript->setScript( $aTrigger['TRI_WEBBOT'] );

                        $oPMScript->execute();



                        $oTrigger = TriggersPeer::retrieveByPk( $aTrigger['TRI_UID'] );

                        $varTriggers .= "&nbsp;- " . nl2br( htmlentities( $oTrigger->getTriTitle(), ENT_QUOTES ) ) . "<br/>";

                        //$appFields = $oCase->loadCase($caseId);

                        $appFields['APP_DATA'] = $oPMScript->aFields;

                        //$appFields['APP_DATA']['APPLICATION'] = $caseId;

                        //$appFields = $oCase->loadCase($caseId);

                        unset($aFields['APP_STATUS']);

                        unset($aFields['APP_PROC_STATUS']);

                        unset($aFields['APP_PROC_CODE']);

                        unset($aFields['APP_PIN']);

                        $oCase->updateCase( $caseId, $appFields );

                    }

                }

            }



            $sFromName = "";



            if ($userId != "") {

                $user = new Users();



                $arrayUserData = $user->load($userId);



                if (trim($arrayUserData["USR_EMAIL"]) == "") {

                    $arrayUserData["USR_EMAIL"] = "info@" . $_SERVER["HTTP_HOST"];

                }



                $sFromName = "\"" . $arrayUserData["USR_FIRSTNAME"] . " " . $arrayUserData["USR_LASTNAME"] . "\" <" . $arrayUserData["USR_EMAIL"] . ">";

            }



            $oCase->sendNotifications( $appdel['TAS_UID'], $nextDelegations, $appFields['APP_DATA'], $caseId, $delIndex, $sFromName );



            // Send notifications Mobile - Start

            try {

                $oLight = new \ProcessMaker\BusinessModel\Light();

                $nextIndex = $oLight->getInformationDerivatedCase($appFields['APP_UID'], $delIndex);

                $notificationMobile = new \ProcessMaker\BusinessModel\Light\NotificationDevice();

                $notificationMobile->routeCaseNotification($userId, $_SESSION["PROCESS"], $appdel['TAS_UID'], $appFields, $nextDelegations, $nextIndex);

            } catch (Exception $e) {

                \G::log(G::loadTranslation( 'ID_NOTIFICATION_ERROR' ) . '|' . $e->getMessage() , PATH_DATA, "mobile.log");

            }

            // Send notifications Mobile - End



            //Save data - Start

            //$appFields = $oCase->loadCase($caseId);

            //$oCase->updateCase($caseId, $appFields);

            //Save data - End





            $oProcess = new Process();

            $oProcessFieds = $oProcess->Load( $appFields['PRO_UID'] );

            //here dubug mode in web entry





            if (isset( $oProcessFieds['PRO_DEBUG'] ) && $oProcessFieds['PRO_DEBUG']) {

                $result = new wsResponse( 0, $varResponse . "

                        <br><br><table width='100%' cellpadding='0' cellspacing='0'><tr><td class='FormTitle'>

                    " . G::LoadTranslation( 'ID_DEBUG_MESSAGE' ) . "</td></tr></table>" . $varTriggers );

            } else {

                $result = new wsResponse( 0, $varResponse . " --- " . $oProcessFieds['PRO_DEBUG'] );

            }



            $res = $result->getPayloadArray();



            //now fill the array of AppDelegationPeer

            $oCriteria = new Criteria( 'workflow' );

            $oCriteria->addSelectColumn( AppDelegationPeer::DEL_INDEX );

            $oCriteria->addSelectColumn( AppDelegationPeer::USR_UID );

            $oCriteria->addSelectColumn( AppDelegationPeer::TAS_UID );

            $oCriteria->addSelectColumn( AppDelegationPeer::DEL_THREAD );

            $oCriteria->addSelectColumn( AppDelegationPeer::DEL_THREAD_STATUS );

            $oCriteria->addSelectColumn( AppDelegationPeer::DEL_FINISH_DATE );

            $oCriteria->add( AppDelegationPeer::APP_UID, $caseId );

            $oCriteria->add( AppDelegationPeer::DEL_PREVIOUS, $delIndex );

            $oCriteria->addAscendingOrderByColumn( AppDelegationPeer::DEL_INDEX );

            $oDataset = AppDelegationPeer::doSelectRS( $oCriteria );

            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );



            $aCurrentUsers = array ();



            while ($oDataset->next()) {

                $aAppDel = $oDataset->getRow();



                $oUser = new Users();



                try {

                    $oUser->load( $aAppDel['USR_UID'] );

                    $uFields = $oUser->toArray( BasePeer::TYPE_FIELDNAME );

                    $currentUserName = $oUser->getUsrFirstname() . ' ' . $oUser->getUsrLastname();

                } catch (Exception $e) {

                    $currentUserName = '';

                }



                $oTask = new Task();



                try {

                    $uFields = $oTask->load( $aAppDel['TAS_UID'] );

                    $taskName = $uFields['TAS_TITLE'];

                } catch (Exception $e) {

                    $taskName = '';

                }



                // execute events

                $eventPro = $_SESSION["PROCESS"];

                $eventApp = $caseId;

                $eventInd = $aAppDel['DEL_INDEX'];

                $eventTas = $aAppDel['TAS_UID'];



                $oEvent = new Event();

                $oEvent->createAppEvents( $eventPro, $eventApp, $eventInd, $eventTas );

                // end events





                $currentUser = new stdClass();

                $currentUser->userId = $aAppDel['USR_UID'];

                $currentUser->userName = $currentUserName;

                $currentUser->taskId = $aAppDel['TAS_UID'];

                $currentUser->taskName = $taskName;

                $currentUser->delIndex = $aAppDel['DEL_INDEX'];

                $currentUser->delThread = $aAppDel['DEL_THREAD'];

                $currentUser->delThreadStatus = $aAppDel['DEL_THREAD_STATUS'];

                $aCurrentUsers[] = $currentUser;

            }



            $res['routing'] = $aCurrentUsers;



            $g->sessionVarRestore();



            return $res;

        } catch (Exception $e) {

            $result = new wsResponse( 100, $e->getMessage() );



            $g->sessionVarRestore();



            return $result;

        }

    }
Ejemplo n.º 22
0
 function LoadTask($data, $fields)
 {
     try {
         $task = new Task();
         $result = $task->load($fields['TAS_UID']);
         return $result;
     } catch (Exception $e) {
         return array('Exception!! ' => $e->getMessage());
     }
 }
Ejemplo n.º 23
0
<?php

require_once 'inc/init.php';
$task_id = $_POST['task-status-id'];
$date = strtotime($_POST['task-status']);
$task = new Task();
$task->load('id = ?', [$task_id]);
$task->status = $_POST['task-status'];
if ($task->save()) {
    Response::write('message', 'Task status updated');
} else {
    Response::write('status', false);
    Response::write('message', 'Task status failed to update.');
}
Response::output();
Ejemplo n.º 24
0
 public function getExtusersadhoc($start, $limit, $sProcessUID = '', $sTaskUID = '')
 {
     try {
         $oProcess = new Process();
         $aFields = $oProcess->load($sProcessUID);
         $oTask = new Task();
         $aFields = $oTask->load($sTaskUID);
         $_SESSION['iType'] = 2;
         $aFields['TASK'] = $sTaskUID;
         $aFields['TYPE'] = $_SESSION['iType'];
         $aFields['OF_TO_ASSIGN'] = G::LoadTranslation('ID_DE_ASSIGN');
         $aFields['CONFIRM'] = G::LoadTranslation('ID_MSG_CONFIRM_DEASIGN_USER_GROUP_MESSAGE');
         $aFields['UIDS'] = "'0'";
         $oTasks = new Tasks();
         $oGroups = new Groups();
         $aAux1 = $oTasks->getGroupsOfTask($sTaskUID, $_SESSION['iType']);
         foreach ($aAux1 as $aGroup) {
             $aAux2 = $oGroups->getUsersOfGroup($aGroup['GRP_UID']);
             foreach ($aAux2 as $aUser) {
                 $aFields['UIDS'] .= ",'" . $aUser['USR_UID'] . "'";
             }
         }
         global $G_PUBLISH;
         $G_PUBLISH = new Publisher();
         $oTask = new Task();
         $aTask = $oTask->load($sTaskUID);
         //$assignedUsers = getExtTaskUsersCriteria($sTaskUID, $_SESSION ['iType']);
         $this->getExtTaskUsersAdHocCriteria($start, $limit, $sTaskUID, $_SESSION['iType']);
         return $_SESSION['_DBArray']['taskUsers'];
     } catch (Exception $oError) {
         throw $oError;
     }
 }
Ejemplo n.º 25
0
 public function getStartEndDate($_project_id = '', $_task_id = '')
 {
     if (!empty($this->_data['project_id'])) {
         $_project_id = $this->_data['project_id'];
     }
     if (!empty($this->_data['task_id'])) {
         $_task_id = $this->_data['task_id'];
     }
     $obj = '';
     if (!empty($_task_id)) {
         $obj = new Task();
         $obj->load($_task_id);
     } elseif (!empty($_project_id)) {
         $obj = new Project();
         $obj->load($_project_id);
     }
     if ($obj instanceof DataObject && $obj->isLoaded()) {
         $start_date = un_fix_date($obj->start_date);
         $end_date = un_fix_date($obj->end_date);
     } else {
         $start_date = $end_date = date(DATE_FORMAT);
     }
     $output['start_date'] = array('data' => $start_date, 'is_array' => is_array($start_date));
     $output['end_date'] = array('data' => $end_date, 'is_array' => is_array($end_date));
     if (isset($this->_data['ajax'])) {
         $this->view->set('data', $output);
         $this->setTemplateName('ajax_multiple');
     } else {
         return $output;
     }
 }
<?php

try {
    require_once 'classes/model/Task.php';
    $oTask = new Task();
    $rows = $oTask->load($_GET['tid']);
    while (list($key, $value) = each($rows)) {
        if ($value == 'TRUE') {
            $rows[$key] = true;
        } else {
            if ($value == 'FALSE') {
                $rows[$key] = false;
            }
        }
        if ($key == 'TAS_TYPE_DAY' && $value == '1') {
            $rows[$key] = 'Work Days';
        } else {
            if ($key == 'TAS_TYPE_DAY' && $value == '2') {
                $rows[$key] = 'Calendar Days';
            }
        }
        if ($key == 'TAS_ASSIGN_TYPE') {
            switch ($value) {
                case 'SELF_SERVICE':
                    $rows[$value] = 'true';
                    break;
                case 'REPORT_TO':
                    $rows[$value] = 'true';
                    break;
                case 'BALANCED':
                    $rows[$value] = 'true';
Ejemplo n.º 27
0
     //require_once 'classes/model/AppDocument.php';
     //require_once 'classes/model/AppDelegation.php';
     $oAppDocument = new AppDocument();
     $aFields = $oAppDocument->load($_POST['APP_DOC_UID']);
     require_once 'classes/model/OutputDocument.php';
     $oOutputDocument = new OutputDocument();
     $aOD = $oOutputDocument->load($aFields['DOC_UID']);
     $oCriteria = new Criteria('workflow');
     $oCriteria->add(AppDelegationPeer::APP_UID, $aFields['APP_UID']);
     $oCriteria->add(AppDelegationPeer::DEL_INDEX, $aFields['DEL_INDEX']);
     $oDataset = AppDelegationPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     $aRow = $oDataset->getRow();
     $oTask = new Task();
     $aTask = $oTask->load($aRow['TAS_UID']);
     $aFields['ORIGIN'] = $aTask['TAS_TITLE'];
     require_once 'classes/model/Users.php';
     $oUser = new Users();
     $aUser = $oUser->load($aFields['USR_UID']);
     $aFields['CREATOR'] = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'];
     $aFields['VIEW'] = G::LoadTranslation('ID_OPEN');
     $aFields['FILE1'] = 'cases_ShowOutputDocument?a=' . $aFields['APP_DOC_UID'] . '&ext=doc&random=' . rand();
     $aFields['FILE2'] = 'cases_ShowOutputDocument?a=' . $aFields['APP_DOC_UID'] . '&ext=pdf&random=' . rand();
     $G_PUBLISH = new Publisher();
     $G_PUBLISH->AddContent('xmlform', 'xmlform', 'cases/cases_ViewAnyOutputDocument', '', G::array_merges($aOD, $aFields), '');
     G::RenderPage('publish', 'raw');
     break;
 case 'showDynaformList':
     $oCase = new Cases();
     global $G_PUBLISH;
Ejemplo n.º 28
0
 public function getUsersToReassign()
 {
     if (!isset($_SESSION['USER_LOGGED'])) {
         $response = new stdclass();
         $response->message = G::LoadTranslation('ID_LOGIN_AGAIN');
         $response->lostSession = true;
         print G::json_encode($response);
         die;
     }
     G::LoadClass('tasks');
     $task = new Task();
     $tasks = $task->load($_SESSION['TASK']);
     $case = new Cases();
     $result->data = $case->getUsersToReassign($_SESSION['TASK'], $_SESSION['USER_LOGGED'], $tasks['PRO_UID']);
     print G::json_encode($result);
 }
Ejemplo n.º 29
0
<?php

require_once "../../global.php";
require_once TEMPLATE_PATH . '/site/helper/format.php';
// check project
$slug = Filter::text($_GET['slug']);
$project = Project::getProjectFromSlug($slug);
if ($project == null) {
    $json = array('error' => 'That project does not exist.');
    exit(json_encode($json));
}
// validate task
$taskID = Filter::numeric($_GET['t']);
$task = Task::load($taskID);
if ($task == null) {
    $json = array('error' => 'That task does not exist.');
    exit(json_encode($json));
}
// // validate username
// $username = Filter::text($_GET['u']);
// $user = User::loadByUsername($username);
// // check if user has accepted task
// $accepted = Accepted::getByUserID($user->getID(), $task->getID());
// if($accepted == null) {
// $json = array('error' => 'That user has not accepted this task.');
// exit(json_encode($json));
// }
// move onto POST variables
$action = Filter::text($_POST['action']);
if ($action == 'create') {
    // get update content
Ejemplo n.º 30
0
    public function getAllGeneratedDocumentsCriteriaTracker($sProcessUID, $sApplicationUID, $sDocUID)

    {

        $oAppDocument = new AppDocument();

        $oCriteria = new Criteria('workflow');

        $oCriteria->add(AppDocumentPeer::APP_UID, $sApplicationUID);

        $oCriteria->add(AppDocumentPeer::APP_DOC_TYPE, 'OUTPUT');

        $oCriteria->add(AppDocumentPeer::APP_DOC_STATUS, array('ACTIVE'), Criteria::IN);

        $oCriteria->add(AppDocumentPeer::DOC_UID, $sDocUID);

        $aConditions = array();

        $aConditions[] = array(AppDocumentPeer::APP_UID, AppDelegationPeer::APP_UID);

        $aConditions[] = array(AppDocumentPeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX);

        $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);

        $oCriteria->add(AppDelegationPeer::PRO_UID, $sProcessUID);

        $oCriteria->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_INDEX);

        $oDataset = AppDocumentPeer::doSelectRS($oCriteria);

        $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);

        $oDataset->next();

        $aOutputDocuments = array();

        $aOutputDocuments[] = array(

            'APP_DOC_UID' => 'char',

            'DOC_UID' => 'char',

            'APP_DOC_COMMENT' => 'char',

            'APP_DOC_FILENAME' => 'char',

            'APP_DOC_INDEX' => 'integer'

        );

        while ($aRow = $oDataset->getRow()) {

            $oCriteria2 = new Criteria('workflow');

            $oCriteria2->add(AppDelegationPeer::APP_UID, $sApplicationUID);

            $oCriteria2->add(AppDelegationPeer::DEL_INDEX, $aRow['DEL_INDEX']);

            $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);

            $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);

            $oDataset2->next();

            $aRow2 = $oDataset2->getRow();

            $oTask = new Task();

            if ($oTask->taskExists($aRow2['TAS_UID'])) {

                $aTask = $oTask->load($aRow2['TAS_UID']);

            } else {

                $aTask = array('TAS_TITLE' => '(TASK DELETED)');

            }

            $aAux = $oAppDocument->load($aRow['APP_DOC_UID'], $aRow['DOC_VERSION']);

            $aFields = array(

                'APP_DOC_UID' => $aAux['APP_DOC_UID'],

                'DOC_UID' => $aAux['DOC_UID'],

                'APP_DOC_COMMENT' => $aAux['APP_DOC_COMMENT'],

                'APP_DOC_FILENAME' => $aAux['APP_DOC_FILENAME'],

                'APP_DOC_INDEX' => $aAux['APP_DOC_INDEX'],

                'ORIGIN' => $aTask['TAS_TITLE']

            );

            if ($aFields['APP_DOC_FILENAME'] != '') {

                $aFields['TITLE'] = $aFields['APP_DOC_FILENAME'];

            } else {

                $aFields['TITLE'] = $aFields['APP_DOC_COMMENT'];

            }

            //$aFields['POSITION'] = $_SESSION['STEP_POSITION'];

            $aFields['CONFIRM'] = G::LoadTranslation('ID_CONFIRM_DELETE_ELEMENT');

            $aOutputDocuments[] = $aFields;

            $oDataset->next();

        }



        global $_DBArray;

        $_DBArray['outputDocuments'] = $aOutputDocuments;

        $_SESSION['_DBArray'] = $_DBArray;

        G::LoadClass('ArrayPeer');

        $oCriteria = new Criteria('dbarray');

        $oCriteria->setDBArrayTable('outputDocuments');

        $oCriteria->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_CREATE_DATE);

        return $oCriteria;

    }