This commit is contained in:
Paula V. Quispe
2016-11-07 14:44:39 -05:00
parent b7f6e01efc
commit d78a1346ce
3 changed files with 83 additions and 2 deletions

View File

@@ -3698,6 +3698,31 @@ class Processes
}
}
public function getElementTaskRelation($processUid){
try {
$arrayElementTask = array();
//Get data
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\ElementTaskRelationPeer::ETR_UID);
$criteria->addSelectColumn(\ElementTaskRelationPeer::PRJ_UID);
$criteria->addSelectColumn(\ElementTaskRelationPeer::ELEMENT_UID);
$criteria->addSelectColumn(\ElementTaskRelationPeer::ELEMENT_TYPE);
$criteria->addSelectColumn(\ElementTaskRelationPeer::TAS_UID);
$criteria->add(ElementTaskRelationPeer::PRJ_UID, $processUid, Criteria::EQUAL);
$rsCriteria = ElementTaskRelationPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
while ($aRow = $rsCriteria->getRow()) {
$arrayElementTask[] = $aRow;
$rsCriteria->next();
}
//Return
return $arrayElementTask;
} catch (Exception $e) {
throw $e;
}
}
public function getFilesManager($processUid, $template = 'all')
{
try {
@@ -4464,6 +4489,7 @@ class Processes
$oData->emailEvent = $this->getEmailEvent($sProUid);
$oData->filesManager = $this->getFilesManager($sProUid);
$oData->abeConfiguration = $this->getActionsByEmail($sProUid);
$oData->elementTask = $this->getElementTaskRelation($sProUid);
$oData->groupwfs = $this->groupwfsMerge($oData->groupwfs, $oData->processUser, "USR_UID");
$oData->process["PRO_TYPE_PROCESS"] = "PUBLIC";

View File

@@ -156,7 +156,7 @@ class ElementTaskRelation
*
* return array Return data of the new Element-Task-Relation created
*/
public function create($projectUid, array $arrayData)
public function create($projectUid, array $arrayData, $verifyPrjUid = true)
{
try {
//Verify data
@@ -173,7 +173,9 @@ class ElementTaskRelation
unset($arrayData["PRJ_UID"]);
//Verify data
$process->throwExceptionIfNotExistsProcess($projectUid, $this->arrayFieldNameForException["projectUid"]);
if($verifyPrjUid){
$process->throwExceptionIfNotExistsProcess($projectUid, $this->arrayFieldNameForException["projectUid"]);
}
$this->throwExceptionIfDataIsInvalid("", $projectUid, $arrayData);
@@ -218,6 +220,31 @@ class ElementTaskRelation
}
}
public function existsElementUid($elementUid)
{
try {
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\ElementTaskRelationPeer::ETR_UID);
$criteria->addSelectColumn(\ElementTaskRelationPeer::PRJ_UID);
$criteria->addSelectColumn(\ElementTaskRelationPeer::ELEMENT_UID);
$criteria->addSelectColumn(\ElementTaskRelationPeer::ELEMENT_TYPE);
$criteria->addSelectColumn(\ElementTaskRelationPeer::TAS_UID);
$criteria->add( \ElementTaskRelationPeer::ELEMENT_UID, $elementUid );
$rs = \ElementTaskRelationPeer::doSelectRS( $criteria );
$rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
if ($rs->next()) {
return true;
} else {
return false;
}
return $criteria;
} catch (\Exception $e) {
throw $e;
}
}
/**
* Delete Element-Task-Relation
*

View File

@@ -512,6 +512,34 @@ abstract class Importer
$arrayWorkflowTables = $this->importData["tables"]["workflow"];
$arrayWorkflowFiles = $this->importData["files"]["workflow"];
//Element Task Relation
$aElementTask = (isset($arrayWorkflowTables["elementTask"]))? $arrayWorkflowTables["elementTask"] : array();
$elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation();
foreach ($aElementTask as $key => $row) {
$exists = $elementTaskRelation->existsElementUid($row['ELEMENT_UID']);
if(!$exists){
$arrayResult = $elementTaskRelation->create(
$row['PRJ_UID'],
[
'ELEMENT_UID' => $row['ELEMENT_UID'],
'ELEMENT_TYPE' => $row['ELEMENT_TYPE'],
'TAS_UID' => $row['TAS_UID']
],
false
);
$task = new \Task();
foreach ($arrayWorkflowTables["tasks"] as $key => $value) {
$arrayTaskData = $value;
if ( $arrayTaskData['TAS_UID'] === $row['TAS_UID'] ) {
if(!$task->taskExists($row['TAS_UID'])){
$tasUid = $task->create($arrayTaskData, false);
break;
}
}
}
}
}
//Import BPMN tables
$result = $this->importBpmnTables($arrayBpmnTables, $generateUid);