Files
luos/workflow/engine/classes/model/Task.php

895 lines
30 KiB
PHP
Raw Normal View History

2010-12-02 23:34:41 +00:00
<?php
//require_once 'classes/model/om/BaseTask.php';
//require_once 'classes/model/Content.php';
2010-12-02 23:34:41 +00:00
/**
* Skeleton subclass for representing a row from the 'TASK' table.
*
*
*
* You should add additional methods to this class to meet the
* application requirements. This class will only be generated as
* long as it does not already exist in the output directory.
*
2011-01-31 14:14:55 +00:00
* @package workflow.engine.classes.model
2010-12-02 23:34:41 +00:00
*/
class Task extends BaseTask
{
2018-09-07 12:01:42 -04:00
const TASK_ASSIGN_TYPE_NO_SELF_SERVICE = null;
const TASK_ASSIGN_TYPE_SELF_SERVICE = 'SELF_SERVICE';
const SELF_SERVICE_WITHOUT_VARIABLE = 'YES';
2018-05-22 15:15:16 -04:00
const tas_type_events = [
'INTERMEDIATE-THROW-MESSAGE-EVENT',
'INTERMEDIATE-THROW-EMAIL-EVENT',
'INTERMEDIATE-CATCH-TIMER-EVENT',
'INTERMEDIATE-CATCH-MESSAGE-EVENT'
];
/**
* This value goes in the content table
* @var string
*/
protected $tas_title_content = '';
2018-05-22 15:15:16 -04:00
/**
* Get the tas_title column value.
* @return string
*/
public function getTasTitleContent()
{
if ($this->getTasUid() == "") {
throw (new Exception("Error in getTasTitle, the getTasUid() can't be blank"));
}
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
$this->tas_title_content = Content::load('TAS_TITLE', '', $this->getTasUid(), $lang);
return $this->tas_title_content;
2010-12-02 23:34:41 +00:00
}
/**
* Set the tas_title column value.
*
* @param string $v new value
* @return void
*/
public function setTasTitleContent($v)
{
if ($this->getTasUid() == "") {
throw (new Exception("Error in setTasTitle, the getTasUid() can't be blank"));
}
$v = isset($v)? ((string)$v) : '';
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
2017-04-06 10:04:29 -04:00
if (in_array(TaskPeer::TAS_TITLE, $this->modifiedColumns) || $v === "") {
$this->tas_title_content = $v;
$res = Content::addContent('TAS_TITLE', '', $this->getTasUid(), $lang, $this->tas_title_content);
return $res;
}
return 0;
2010-12-02 23:34:41 +00:00
}
/**
* This value goes in the content table
* @var string
*/
protected $tas_description_content = '';
/**
* Get the tas_description column value.
* @return string
*/
public function getTasDescriptionContent()
{
if ($this->getTasUid() == "") {
throw (new Exception( "Error in getTasDescription, the getTasUid() can't be blank"));
}
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
$this->tas_description_content = Content::load('TAS_DESCRIPTION', '', $this->getTasUid(), $lang);
return $this->tas_description_content;
2010-12-02 23:34:41 +00:00
}
/**
* Set the tas_description column value.
*
* @param string $v new value
* @return void
*/
public function setTasDescriptionContent($v)
{
if ($this->getTasUid() == "") {
throw (new Exception("Error in setTasDescription, the getTasUid() can't be blank"));
}
$v = isset($v)? ((string)$v) : '';
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
2017-04-06 10:04:29 -04:00
if (in_array(TaskPeer::TAS_DESCRIPTION, $this->modifiedColumns) || $v === "") {
$this->tas_description_content = $v;
$res = Content::addContent('TAS_DESCRIPTION', '', $this->getTasUid(), $lang, $this->tas_description_content);
return $res;
}
return 0;
2010-12-02 23:34:41 +00:00
}
/**
* This value goes in the content table
* @var string
*/
protected $tas_def_title_content = '';
/**
* Get the tas_def_title column value.
* @return string
*/
public function getTasDefTitleContent()
{
if ($this->getTasUid() == "") {
throw (new Exception( "Error in getTasDefTitle, the getTasUid() can't be blank"));
}
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
$this->tas_def_title_content = Content::load('TAS_DEF_TITLE', '', $this->getTasUid(), $lang);
return $this->tas_def_title_content;
2010-12-02 23:34:41 +00:00
}
/**
* Set the tas_def_title column value.
*
* @param string $v new value
* @return void
*/
public function setTasDefTitleContent($v)
{
if ($this->getTasUid() == "") {
throw (new Exception("Error in setTasDefTitle, the getTasUid() can't be blank"));
}
$v = isset($v)? ((string)$v) : '';
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
2017-04-06 10:04:29 -04:00
if (in_array(TaskPeer::TAS_DEF_TITLE, $this->modifiedColumns) || $v === "") {
$this->tas_def_title_content = $v;
$res = Content::addContent('TAS_DEF_TITLE', '', $this->getTasUid(), $lang, $this->tas_def_title_content);
return $res;
}
return 0;
2010-12-02 23:34:41 +00:00
}
/**
* This value goes in the content table
* @var string
*/
protected $tas_def_description_content = '';
/**
* Get the tas_def_description column value.
* @return string
*/
public function getTasDefDescriptionContent()
{
if ($this->getTasUid() == "") {
throw (new Exception( "Error in getTasDefDescription, the getTasUid() can't be blank"));
}
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
$this->tas_def_description_content = Content::load('TAS_DEF_DESCRIPTION', '', $this->getTasUid(), $lang);
return $this->tas_def_description_content;
2010-12-02 23:34:41 +00:00
}
/**
* Set the tas_def_description column value.
*
* @param string $v new value
* @return void
*/
public function setTasDefDescriptionContent($v)
{
if ($this->getTasUid() == "") {
throw (new Exception("Error in setTasDefDescription, the getTasUid() can't be blank"));
}
$v = isset($v)? ((string)$v) : '';
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
2017-04-06 10:04:29 -04:00
if (in_array(TaskPeer::TAS_DEF_DESCRIPTION, $this->modifiedColumns) || $v === "") {
$this->tas_def_description_content = $v;
$res = Content::addContent('TAS_DEF_DESCRIPTION', '', $this->getTasUid(), $lang, $v);
return $res;
}
return 0;
2010-12-02 23:34:41 +00:00
}
/**
* This value goes in the content table
* @var string
*/
protected $tas_def_proc_code_content = '';
/**
* Get the tas_def_proc_code column value.
* @return string
*/
public function getTasDefProcCodeContent()
{
if ($this->getTasUid() == "") {
throw (new Exception( "Error in getTasDefProcCode, the getTasUid() can't be blank"));
}
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
$this->tas_def_proc_code_content = Content::load('TAS_DEF_PROC_CODE', '', $this->getTasUid(), $lang);
return $this->tas_def_proc_code_content;
2010-12-02 23:34:41 +00:00
}
/**
* Set the tas_def_proc_code column value.
*
* @param string $v new value
* @return void
*/
public function setTasDefProcCodeContent($v)
{
if ($this->getTasUid() == "") {
throw (new Exception("Error in setTasDefProcCode, the getTasUid() can't be blank"));
}
$v = isset($v)? ((string)$v) : '';
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
2017-04-06 10:04:29 -04:00
if (in_array(TaskPeer::TAS_DEF_PROC_CODE, $this->modifiedColumns) || $v === "") {
$this->tas_def_proc_code_content = $v;
$res = Content::addContent('TAS_DEF_PROC_CODE', '', $this->getTasUid(), $lang, $this->tas_def_proc_code_content);
return $res;
}
return 0;
2010-12-02 23:34:41 +00:00
}
/**
* This value goes in the content table
* @var string
*/
protected $tas_def_message_content = '';
/**
* Get the tas_def_message column value.
* @return string
*/
public function getTasDefMessageContent()
{
if ($this->getTasUid() == "") {
throw (new Exception( "Error in getTasDefMessage, the getTasUid() can't be blank"));
}
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
$this->tas_def_message_content = Content::load('TAS_DEF_MESSAGE', '', $this->getTasUid(), $lang);
return $this->tas_def_message_content;
}
/**
* Set the tas_def_message column value.
*
* @param string $v new value
* @return void
*/
public function setTasDefMessageContent($v)
{
if ($this->getTasUid() == "") {
throw (new Exception("Error in setTasDefMessage, the getTasUid() can't be blank"));
}
$v = isset($v)? ((string)$v) : '';
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
2017-04-06 10:04:29 -04:00
if (in_array(TaskPeer::TAS_DEF_MESSAGE, $this->modifiedColumns) || $v === "") {
$this->tas_def_message_content = $v;
$res = Content::addContent('TAS_DEF_MESSAGE', '', $this->getTasUid(), $lang, $this->tas_def_message_content);
return $res;
}
return 0;
}
/**
* This value goes in the content table
* @var string
*/
protected $tas_def_subject_message_content = '';
/**
* Get the tas_def_message column value.
* @return string
*/
public function getTasDefSubjectMessageContent()
{
if ($this->getTasUid() == "") {
throw (new Exception("Error in getTasDefSubjectMessage, the getTasUid() can't be blank"));
}
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
$this->tas_def_subject_message_content = Content::load('TAS_DEF_SUBJECT_MESSAGE', '', $this->getTasUid(), $lang);
return $this->tas_def_subject_message_content;
}
/**
* Set the tas_def_subject_message column value.
*
* @param string $v new value
* @return void
*/
public function setTasDefSubjectMessageContent($v)
2010-12-02 23:34:41 +00:00
{
if ($this->getTasUid() == "") {
throw (new Exception( "Error in setTasDefSubjectMessage, the getTasUid() can't be blank"));
}
$v = isset($v)? ((string)$v) : '';
$lang = defined('SYS_LANG')? SYS_LANG : 'en';
2017-04-06 10:04:29 -04:00
if (in_array(TaskPeer::TAS_DEF_SUBJECT_MESSAGE, $this->modifiedColumns) || $v === "") {
$this->tas_def_subject_message_content = $v;
$res = Content::addContent('TAS_DEF_SUBJECT_MESSAGE', '', $this->getTasUid(), $lang, $v);
return $res;
}
return 0;
2010-12-02 23:34:41 +00:00
}
/**
* create a new Task
*
* @param array $aData with new values
* @return string
*/
2013-12-17 11:14:36 -04:00
public function create($aData, $generateUid = true)
2010-12-02 23:34:41 +00:00
{
$con = Propel::getConnection(TaskPeer::DATABASE_NAME);
try {
2013-12-17 11:14:36 -04:00
if ($generateUid) {
$sTaskUID = G::generateUniqueID();
} else {
$sTaskUID = $aData['TAS_UID'];
}
$con->begin();
$this->setProUid($aData['PRO_UID']);
$this->setTasUid($sTaskUID);
$this->setTasTitle((isset($aData['TAS_TITLE']) ? $aData['TAS_TITLE']: ''));
$this->setTasDescription((isset($aData['TAS_DESCRIPTION']) ? $aData['TAS_DESCRIPTION']: ''));
$this->setTasDefTitle("");
$this->setTasDefDescription("");
$this->setTasDefProcCode("");
$this->setTasDefMessage("");
$this->setTasDefSubjectMessage("");
$this->setTasType("NORMAL");
$this->setTasDuration("1");
$this->setTasDelayType("");
$this->setTasTemporizer("");
$this->setTasTypeDay("");
$this->setTasTimeunit("DAYS");
$this->setTasAlert("FALSE");
$this->setTasPriorityVariable("");
$this->setTasAssignType("BALANCED");
$this->setTasAssignVariable("@@SYS_NEXT_USER_TO_BE_ASSIGNED");
$this->setTasAssignLocation("FALSE");
$this->setTasAssignLocationAdhoc("FALSE");
$this->setTasTransferFly("FALSE");
$this->setTasLastAssigned("0");
$this->setTasUser("0");
$this->setTasCanUpload("FALSE");
$this->setTasViewUpload("FALSE");
$this->setTasViewAdditionalDocumentation("FALSE");
$this->setTasCanCancel("FALSE");
$this->setTasOwnerApp("FALSE");
$this->setStgUid("");
$this->setTasCanPause("FALSE");
$this->setTasCanSendMessage("TRUE");
$this->setTasCanDeleteDocs("FALSE");
$this->setTasSelfService("FALSE");
$this->setTasStart("FALSE");
$this->setTasToLastUser("FALSE");
$this->setTasSendLastEmail("FALSE");
$this->setTasDerivation("NORMAL");
$this->setTasPosx("");
$this->setTasPosy("");
$this->setTasColor("");
2017-01-10 10:48:38 -04:00
$this->setTasGroupVariable("");
if (!$generateUid && !empty($aData['TAS_ID'])) {
$this->setTasId($aData['TAS_ID']);
}
$this->fromArray($aData,BasePeer::TYPE_FIELDNAME);
if ($this->validate()) {
$this->setTasTitleContent((isset($aData['TAS_TITLE']) ? $aData['TAS_TITLE']: ''));
$this->setTasDescriptionContent((isset($aData['TAS_DESCRIPTION']) ? $aData['TAS_DESCRIPTION']: ''));
$this->setTasDefTitleContent("");
$this->setTasDefDescriptionContent("");
$this->setTasDefProcCodeContent("");
$this->setTasDefMessageContent("");
$this->setTasDefSubjectMessageContent("");
$this->save();
$con->commit();
return $sTaskUID;
} else {
$con->rollback();
$e = new Exception("Failed Validation in class " . get_class($this) . ".");
$e->aValidationFailures=$this->getValidationFailures();
throw ($e);
}
} catch (Exception $e) {
$con->rollback();
throw ($e);
}
2010-12-02 23:34:41 +00:00
}
public function kgetassigType($pro_uid, $tas)
{
2010-12-02 23:34:41 +00:00
$k = new Criteria();
$k->clearSelectColumns();
$k->addSelectColumn(TaskPeer::TAS_UID);
$k->addSelectColumn(TaskPeer::TAS_ASSIGN_TYPE);
$k->add(TaskPeer::PRO_UID, $pro_uid );
$k->add(TaskPeer::TAS_UID, $tas );
$rs = TaskPeer::doSelectRS($k);
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
return $row;
2010-12-02 23:34:41 +00:00
}
/**
* @param $pro_uid
* @param $tas
* @return array
*/
public function getEmailServerSettingsForNotification($pro_uid, $tas)
{
$oCriteria = new Criteria();
$oCriteria->clearSelectColumns();
$oCriteria->addSelectColumn(TaskPeer::TAS_NOT_EMAIL_FROM_FORMAT);
$oCriteria->add(TaskPeer::PRO_UID, $pro_uid );
$oCriteria->add(TaskPeer::TAS_UID, $tas );
$rs = TaskPeer::doSelectRS($oCriteria);
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
return $row;
}
2020-02-14 15:33:28 -04:00
/**
* Load the properties related to the task
*
* @param string $tasUid
*
* @return array
* @throws Exception
*/
public function load($tasUid)
2010-12-02 23:34:41 +00:00
{
try {
2020-02-14 15:33:28 -04:00
$rows = TaskPeer::retrieveByPK($tasUid);
2020-02-14 15:33:28 -04:00
if (!is_null($rows)) {
$fields = $rows->toArray(BasePeer::TYPE_FIELDNAME);
$this->fromArray($fields, BasePeer::TYPE_FIELDNAME); //Populating an object from of the array
//Populating attributes
$this->setNew(false);
2017-08-04 14:11:09 -04:00
$indicator = new IndicatorsCalculator();
2020-02-14 15:33:28 -04:00
$data = $indicator->suggestedTimeForTask($tasUid);
$fields["TAS_AVERAGE"] = $data['average'];
$fields["TAS_SDV"] = $data['sdv'];
2020-02-14 15:33:28 -04:00
return $fields;
} else {
2020-02-14 15:33:28 -04:00
throw new Exception("The row '" . $tasUid . "' in table TASK doesn't exist!");
}
2020-02-14 15:33:28 -04:00
} catch (Exception $error) {
throw $error;
}
2010-12-02 23:34:41 +00:00
}
public function update($fields)
2010-12-02 23:34:41 +00:00
{
require_once ("classes/model/AppCacheView.php");
require_once ("classes/model/Configuration.php");
$con = Propel::getConnection(TaskPeer::DATABASE_NAME);
try {
$con->begin();
$oldValues = $this->load($fields["TAS_UID"]);
$this->fromArray($fields, BasePeer::TYPE_FIELDNAME);
$this->validateAssignType($fields,$oldValues);
if ($this->validate()) {
$taskDefTitlePrevious = $oldValues["TAS_DEF_TITLE"];
$contentResult = 0;
if (array_key_exists("TAS_TITLE", $fields)) {
$contentResult += $this->setTasTitleContent($fields["TAS_TITLE"]);
}
if (array_key_exists("TAS_DESCRIPTION", $fields)) {
$contentResult += $this->setTasDescriptionContent($fields["TAS_DESCRIPTION"]);
}
if (array_key_exists("TAS_DEF_TITLE", $fields)) {
$contentResult += $this->setTasDefTitleContent($fields["TAS_DEF_TITLE"]);
}
if (array_key_exists("TAS_DEF_DESCRIPTION", $fields)) {
$contentResult += $this->setTasDefDescriptionContent($fields["TAS_DEF_DESCRIPTION"]);
}
if (array_key_exists("TAS_DEF_PROC_CODE", $fields)) {
$contentResult += $this->setTasDefProcCodeContent($fields["TAS_DEF_PROC_CODE"]);
}
if (array_key_exists("TAS_DEF_MESSAGE", $fields)) {
$contentResult += $this->setTasDefMessageContent(trim($fields["TAS_DEF_MESSAGE"]));
}
if (array_key_exists("TAS_DEF_SUBJECT_MESSAGE", $fields)) {
$contentResult += $this->setTasDefSubjectMessageContent(trim($fields["TAS_DEF_SUBJECT_MESSAGE"]));
}
if (array_key_exists("TAS_CALENDAR", $fields)) {
$contentResult += $this->setTasCalendar($fields['TAS_UID'],$fields["TAS_CALENDAR"]);
}
$result = $this->save();
$result = ($result == 0)? (($contentResult > 0)? 1 : 0) : $result;
$con->commit();
/* commented, because the AppCacheView was deprecated
if ($result == 1 &&
array_key_exists("TAS_DEF_TITLE", $fields) &&
$fields["TAS_DEF_TITLE"] != $taskDefTitlePrevious
) {
$criteria = new Criteria("workflow");
$criteria->addAsColumn("APPCV_NUM_ROWS", "COUNT(DISTINCT " . AppCacheViewPeer::APP_UID . ")");
$criteria->add(AppCacheViewPeer::DEL_THREAD_STATUS, "OPEN");
$criteria->add(AppCacheViewPeer::TAS_UID, $fields["TAS_UID"]);
$rsCriteria = AppCacheViewPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
$row = $rsCriteria->getRow();
$appcvNumRows = intval($row["APPCV_NUM_ROWS"]);
if ($appcvNumRows <= 1000) {
$appcv = new AppCacheView();
$appcv->appTitleByTaskCaseLabelUpdate($fields["TAS_UID"], SYS_LANG);
$result = 2;
} else {
//Delete record
$criteria = new Criteria("workflow");
$criteria->add(ConfigurationPeer::CFG_UID, "TAS_APP_TITLE_UPDATE");
$criteria->add(ConfigurationPeer::OBJ_UID, $fields["TAS_UID"]);
$criteria->add(ConfigurationPeer::CFG_VALUE, SYS_LANG);
$numRowDeleted = ConfigurationPeer::doDelete($criteria);
//Insert record
$conf = new Configuration();
$conf->create(
array(
"CFG_UID" => "TAS_APP_TITLE_UPDATE",
"OBJ_UID" => $fields["TAS_UID"],
"CFG_VALUE" => SYS_LANG,
"PRO_UID" => "",
"USR_UID" => "",
"APP_UID" => ""
)
);
$result = 3;
}
}
*/
return $result;
} else {
$con->rollback();
throw (new Exception("Failed Validation in class " . get_class($this) . "."));
}
} catch (Exception $e) {
$con->rollback();
throw ($e);
}
2010-12-02 23:34:41 +00:00
}
public function remove($TasUid)
{
$oConnection = Propel::getConnection(TaskPeer::DATABASE_NAME);
try {
$oTask = TaskPeer::retrieveByPK($TasUid);
if (!is_null($oTask)) {
$oConnection->begin();
Content::removeContent('TAS_TITLE', '', $oTask->getTasUid());
Content::removeContent('TAS_DESCRIPTION', '', $oTask->getTasUid());
Content::removeContent('TAS_DEF_TITLE', '', $oTask->getTasUid());
Content::removeContent('TAS_DEF_DESCRIPTION', '', $oTask->getTasUid());
Content::removeContent('TAS_DEF_PROC_CODE', '', $oTask->getTasUid());
Content::removeContent('TAS_DEF_MESSAGE', '', $oTask->getTasUid());
Content::removeContent('TAS_DEF_SUBJECT_MESSAGE', '', $oTask->getTasUid());
$iResult = $oTask->delete();
$oConnection->commit();
return $iResult;
} else {
throw (new Exception( "The row '" . $TasUid . "' in table TASK doesn't exist!"));
}
} catch (Exception $oError) {
$oConnection->rollback();
throw ($oError);
}
2010-12-02 23:34:41 +00:00
}
/**
* verify if Task row specified in [TasUid] exists.
*
* @param string $sProUid the uid of the Prolication
*/
public function taskExists($TasUid)
{
$con = Propel::getConnection(TaskPeer::DATABASE_NAME);
try {
$oPro = TaskPeer::retrieveByPk($TasUid);
if (is_object($oPro) && get_class($oPro) == 'Task') {
return true;
} else {
return false;
}
} catch (Exception $oError) {
throw ($oError);
}
2010-12-02 23:34:41 +00:00
}
/**
* create a new Task
*
* @param array $aData with new values
* @return void
*/
public function createRow($aData)
{
$con = Propel::getConnection(TaskPeer::DATABASE_NAME);
try {
$con->begin();
$this->fromArray($aData,BasePeer::TYPE_FIELDNAME);
if ($this->validate()) {
$this->setTasTitleContent((isset($aData['TAS_TITLE'])? $aData['TAS_TITLE'] : ''));
$this->setTasDescriptionContent((isset($aData['TAS_DESCRIPTION'])? $aData['TAS_DESCRIPTION'] : ''));
$this->setTasDefTitleContent((isset($aData['TAS_DEF_TITLE'])? $aData['TAS_DEF_TITLE'] : ''));
$this->setTasDefDescriptionContent((isset($aData['TAS_DEF_DESCRIPTION'])? $aData['TAS_DEF_DESCRIPTION'] : ''));
$this->setTasDefProcCodeContent((isset($aData['TAS_DEF_DESCRIPTION'])? $aData['TAS_DEF_DESCRIPTION'] : ''));
$this->setTasDefMessageContent((isset($aData['TAS_DEF_MESSAGE'])? $aData['TAS_DEF_MESSAGE'] : ''));
$strAux = isset($aData['TAS_DEF_SUBJECT_MESSAGE'])? $aData['TAS_DEF_SUBJECT_MESSAGE'] : '';
$this->setTasDefSubjectMessageContent($strAux);
$this->save();
$con->commit();
return;
} else {
$con->rollback();
$e = new Exception("Failed Validation in class " . get_class($this) . ".");
$e->aValidationFailures=$this->getValidationFailures();
throw ($e);
}
} catch (Exception $e) {
$con->rollback();
throw ($e);
}
2010-12-02 23:34:41 +00:00
}
public function setTasCalendar($taskUid, $calendarUid)
{
//Save Calendar ID for this process
$calendarObj = new Calendar();
$calendarObj->assignCalendarTo($taskUid, $calendarUid, 'TASK');
2010-12-02 23:34:41 +00:00
}
2020-10-02 12:53:58 -04:00
/**
* @deprecated Method deprecated in Release 3.5.x
*/
public function getDelegatedTaskData($TAS_UID, $APP_UID, $DEL_INDEX)
2010-12-02 23:34:41 +00:00
{
require_once ('classes/model/AppDelegation.php');
require_once ('classes/model/Task.php');
$oTask = new Task();
$aFields = $oTask->load($TAS_UID);
$oCriteria = new Criteria('workflow');
$oCriteria->add(AppDelegationPeer::APP_UID, $APP_UID);
$oCriteria->add(AppDelegationPeer::DEL_INDEX, $DEL_INDEX);
$oDataset = AppDelegationPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$taskData = $oDataset->getRow();
$iDiff = strtotime($taskData['DEL_FINISH_DATE']) - strtotime($taskData['DEL_INIT_DATE']);
$aFields['INIT_DATE'] = (
$taskData['DEL_INIT_DATE'] != null ?
$taskData['DEL_INIT_DATE'] : G::LoadTranslation('ID_CASE_NOT_YET_STARTED')
);
$aFields['DUE_DATE'] = (
$taskData['DEL_TASK_DUE_DATE'] != null ?
$taskData['DEL_TASK_DUE_DATE'] : G::LoadTranslation('ID_NOT_FINISHED')
);
$aFields['FINISH'] = (
$taskData['DEL_FINISH_DATE'] != null ?
$taskData['DEL_FINISH_DATE'] : G::LoadTranslation('ID_NOT_FINISHED')
);
$aFields['DURATION'] = ($taskData['DEL_FINISH_DATE'] != null ? (int) ($iDiff / 3600) . ' ' . ((int) ($iDiff / 3600) == 1 ? G::LoadTranslation('ID_HOUR') : G::LoadTranslation('ID_HOURS')) . ' ' . (int) (($iDiff % 3600) / 60) . ' ' . ((int) (($iDiff % 3600) / 60) == 1 ? G::LoadTranslation('ID_MINUTE') : G::LoadTranslation('ID_MINUTES')) . ' ' . (int) (($iDiff % 3600) % 60) . ' ' . ((int) (($iDiff % 3600) % 60) == 1 ? G::LoadTranslation('ID_SECOND') : G::LoadTranslation('ID_SECONDS')) : G::LoadTranslation('ID_NOT_FINISHED'));
return $aFields;
2010-12-02 23:34:41 +00:00
}
//Added by qennix
//Gets Starting Event of current task
public function getStartingEvent()
{
require_once ('classes/model/Event.php');
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(EventPeer::EVN_UID);
$oCriteria->add(EventPeer::EVN_TAS_UID_TO, $this->tas_uid);
//$oCriteria->add(EventPeer::EVN_TYPE, 'bpmnEventMessageStart');
$oDataset = EventPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($oDataset->next()) {
$row = $oDataset->getRow();
$event_uid = $row['EVN_UID'];
} else {
$event_uid = '';
}
return $event_uid;
}
public function validateAssignType($newValues,$oldValues)
{
if(isset($newValues['TAS_ASSIGN_TYPE']) && isset($oldValues['TAS_ASSIGN_TYPE'])) {
$newAssigType = $newValues['TAS_ASSIGN_TYPE'];
$oldAssigType = $oldValues['TAS_ASSIGN_TYPE'];
if($newAssigType == 'SELF_SERVICE'){
$newAssigType = isset($newValues['TAS_GROUP_VARIABLE'])?(empty($newValues['TAS_GROUP_VARIABLE'])?'SELF_SERVICE':'SELF_SERVICE_VALUE_BASED'):'SELF_SERVICE';
}
if($oldAssigType == 'SELF_SERVICE'){
$oldAssigType = isset($oldValues['TAS_GROUP_VARIABLE'])?(empty($oldValues['TAS_GROUP_VARIABLE'])?'SELF_SERVICE':'SELF_SERVICE_VALUE_BASED'):'SELF_SERVICE';
}
if(($oldAssigType == 'SELF_SERVICE' && $newAssigType != 'SELF_SERVICE') || ($oldAssigType == 'SELF_SERVICE_VALUE_BASED' && $newAssigType != 'SELF_SERVICE_VALUE_BASED')) {
$oCriteria = new Criteria();
$oCriteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN");
$oCriteria->add(AppDelegationPeer::TAS_UID, $newValues['TAS_UID']);
2015-11-20 18:55:30 -04:00
$oCriteria->add(AppDelegationPeer::USR_UID, "");
$oApplication = AppDelegationPeer::doSelectOne($oCriteria);
if(!empty($oApplication)) {
throw (new Exception(G::LoadTranslation('ID_CURRENT_ASSING_TYPE_WITH_CASES')));
}
}
}
}
2017-11-06 14:27:06 -04:00
/**
* This function get the columns by Id indexing
*
* @param string $tasUid
*
* @return array
* @throws Exception
*/
public function getColumnIds($tasUid)
{
try {
$columnsId = [];
$row = TaskPeer::retrieveByPK($tasUid);
if (!is_null($row)) {
$fields = $row->toArray(BasePeer::TYPE_FIELDNAME);
$this->fromArray($fields, BasePeer::TYPE_FIELDNAME);
$columnsId['TAS_ID'] = $fields['TAS_ID'];
$columnsId['PRO_ID'] = $fields['PRO_ID'];
return $columnsId;
} else {
throw (new Exception("The row '" . $tasUid . "' in table TASK doesn't exist!"));
}
} catch (Exception $e) {
throw $e;
}
}
2018-09-07 12:01:42 -04:00
/**
* Review if the task is "Self Service"
* If the task is not self service, the function returns null
* If the task is self service, the function returns the self service variable
*
* @param string $tasUid
*
* @return string|null
*/
public static function getVariableUsedInSelfService($tasUid)
{
$criteria = new Criteria();
$criteria->add(TaskPeer::TAS_UID, $tasUid);
$task = TaskPeer::doSelectOne($criteria);
if (!is_null($task)) {
//Review if is "Self Service"
if ($task->getTasAssignType() === self::TASK_ASSIGN_TYPE_SELF_SERVICE) {
$variableInSelfService = $task->getTasGroupVariable();
//Review if is "Self Service Value Based Assignment"
if (empty($variableInSelfService)) {
return self::SELF_SERVICE_WITHOUT_VARIABLE;
} else {
return $variableInSelfService;
}
} else {
self::TASK_ASSIGN_TYPE_NO_SELF_SERVICE;
}
} else {
self::TASK_ASSIGN_TYPE_NO_SELF_SERVICE;
}
}
}