[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /*+*********************************************************************************** 3 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 *************************************************************************************/ 10 11 /* 12 * Workflow Task Record Model Class 13 */ 14 require_once 'modules/com_vtiger_workflow/include.inc'; 15 require_once 'modules/com_vtiger_workflow/VTTaskManager.inc'; 16 17 class Settings_Workflows_TaskRecord_Model extends Settings_Vtiger_Record_Model { 18 19 const TASK_STATUS_ACTIVE = 1; 20 21 public function getId() { 22 return $this->get('task_id'); 23 } 24 25 public function getName() { 26 return $this->get('summary'); 27 } 28 29 public function isActive() { 30 return $this->get('status') == self::TASK_STATUS_ACTIVE; 31 } 32 33 public function getTaskObject() { 34 return $this->task_object; 35 } 36 37 public function setTaskObject($task) { 38 $this->task_object = $task; 39 return $this; 40 } 41 42 public function getTaskManager() { 43 return $this->task_manager; 44 } 45 46 public function setTaskManager($tm) { 47 $this->task_manager = $tm; 48 } 49 50 public function getEditViewUrl() { 51 return 'index.php?module=Workflows&parent=Settings&view=EditTask&type='.$this->task_type->getName().'&task_id='.$this->getId().'&for_workflow='.$this->getWorkflow()->getId(); 52 } 53 54 public function getDeleteActionUrl() { 55 return 'index.php?module=Workflows&parent=Settings&action=TaskAjax&mode=Delete&task_id='.$this->getId(); 56 } 57 58 public function getChangeStatusUrl() { 59 return 'index.php?module=Workflows&parent=Settings&action=TaskAjax&mode=ChangeStatus&task_id='.$this->getId(); 60 } 61 62 public function getWorkflow() { 63 return $this->workflow; 64 } 65 66 public function setWorkflowFromInstance($workflowModel) { 67 $this->workflow = $workflowModel; 68 return $this; 69 } 70 71 public function getTaskType() { 72 if(!$this->task_type) { 73 $taskObject = $this->getTaskObject(); 74 $taskClass = get_class($taskObject); 75 $this->task_type = Settings_Workflows_TaskType_Model::getInstanceFromClassName($taskClass); 76 } 77 return $this->task_type; 78 } 79 80 public static function getAllForWorkflow($workflowModel, $active=false) { 81 $db = PearDatabase::getInstance(); 82 83 $tm = new VTTaskManager($db); 84 $tasks = $tm->getTasksForWorkflow($workflowModel->getId()); 85 $taskModels = array(); 86 foreach($tasks as $task) { 87 if(!$active || $task->active == self::TASK_STATUS_ACTIVE) { 88 $taskModels[$task->id] = self::getInstanceFromTaskObject($task, $workflowModel, $tm); 89 } 90 } 91 return $taskModels; 92 } 93 94 public static function getInstance($taskId, $workflowModel=null) { 95 $db = PearDatabase::getInstance(); 96 $tm = new VTTaskManager($db); 97 $task = $tm->retrieveTask($taskId); 98 if($workflowModel == null) { 99 $workflowModel = Settings_Workflows_Record_Model::getInstance($task->workflowId); 100 } 101 return self::getInstanceFromTaskObject($task, $workflowModel, $tm); 102 } 103 104 public static function getCleanInstance($workflowModel, $taskName) { 105 $db = PearDatabase::getInstance(); 106 $tm = new VTTaskManager($db); 107 $task = $tm->createTask($taskName, $workflowModel->getId()); 108 return self::getInstanceFromTaskObject($task, $workflowModel, $tm); 109 } 110 111 public static function getInstanceFromTaskObject($task, $workflowModel, $tm) { 112 $taskId = $task->id; 113 $summary = $task->summary; 114 $status = $task->active; 115 116 $taskModel = new self(); 117 $taskModel->setTaskManager($tm); 118 return $taskModel->set('task_id', $taskId)->set('summary', $summary)->set('status', $status) 119 ->setTaskObject($task)->setWorkflowFromInstance($workflowModel); 120 } 121 122 /** 123 * Function deletes workflow task 124 */ 125 public function delete() { 126 $this->task_manager->deleteTask($this->getId()); 127 } 128 129 /** 130 * Function saves workflow task 131 */ 132 public function save() { 133 $taskObject = $this->getTaskObject(); 134 $this->task_manager->saveTask($taskObject); 135 } 136 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |