@@ -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";
|
||||
|
||||
|
||||
@@ -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