HOR-2220
This commit is contained in:
@@ -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
|
||||
*
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user