This commit is contained in:
Paula Quispe
2018-09-03 10:44:39 -04:00
parent ef4099756d
commit 38f4d95801
2 changed files with 433 additions and 300 deletions

View File

@@ -1768,25 +1768,33 @@ class Processes
/** /**
* Create "Process User" records * Create "Process User" records
* *
* @param array $arrayData Data to create * @param array $arrayData
* *
* return void * @return void
* @throws Exception
*/ */
public function createProcessUser(array $arrayData) public function createProcessUser(array $arrayData)
{ {
try { try {
$processUser = new ProcessUser(); $con = Propel::getConnection(ProcessUserPeer::DATABASE_NAME);
$con->begin();
foreach ($arrayData as $value) { foreach ($arrayData as $row) {
$record = $value; //Prepare the delete
$criteria = new Criteria(ProcessUserPeer::DATABASE_NAME);
if ($processUser->Exists($record["PU_UID"])) { $criteria->addSelectColumn('*');
$result = $processUser->remove($record["PU_UID"]); $criteria->add(ProcessUserPeer::PU_UID, $row['PU_UID']);
} BasePeer::doDelete($criteria, $con);
//Prepare the insert
$result = $processUser->create($record); $criteria = new Criteria(ProcessUserPeer::DATABASE_NAME);
$criteria->add(ProcessUserPeer::PU_UID, $row['PU_UID']);
$criteria->add(ProcessUserPeer::PRO_UID, $row['PRO_UID']);
$criteria->add(ProcessUserPeer::USR_UID, $row['USR_UID']);
$criteria->add(ProcessUserPeer::PU_TYPE, $row['PU_TYPE']);
BasePeer::doInsert($criteria, $con);
} }
$con->commit();
} catch (Exception $e) { } catch (Exception $e) {
$con->rollback();
throw $e; throw $e;
} }
} }
@@ -1832,23 +1840,41 @@ class Processes
/** /**
* Create "Process Variables" records * Create "Process Variables" records
* *
* @param array $arrayData Data to create * @param array $arrayData
* *
* return void * @return void
* @throws Exception
*/ */
public function createProcessVariables(array $arrayData) public function createProcessVariables(array $arrayData)
{ {
try { try {
foreach ($arrayData as $value) { $con = Propel::getConnection(ProcessVariablesPeer::DATABASE_NAME);
$processVariables = new ProcessVariables(); $con->begin();
$record = $value; foreach ($arrayData as $row) {
//Prepare the delete
if ($processVariables->Exists($record["VAR_UID"])) { $criteria = new Criteria(ProcessVariablesPeer::DATABASE_NAME);
$result = $processVariables->remove($record["VAR_UID"]); $criteria->addSelectColumn('*');
} $criteria->add(ProcessVariablesPeer::VAR_UID, $row['VAR_UID']);
$result = $processVariables->create($record); BasePeer::doDelete($criteria, $con);
//Prepare the insert
$criteria = new Criteria(ProcessVariablesPeer::DATABASE_NAME);
$criteria->add(ProcessVariablesPeer::VAR_UID, $row['VAR_UID']);
$criteria->add(ProcessVariablesPeer::PRJ_UID, $row['PRJ_UID']);
$criteria->add(ProcessVariablesPeer::VAR_NAME, $row['VAR_NAME']);
$criteria->add(ProcessVariablesPeer::VAR_FIELD_TYPE, $row['VAR_FIELD_TYPE']);
$criteria->add(ProcessVariablesPeer::VAR_FIELD_SIZE, $row['VAR_FIELD_SIZE']);
$criteria->add(ProcessVariablesPeer::VAR_LABEL, $row['VAR_LABEL']);
$criteria->add(ProcessVariablesPeer::VAR_DBCONNECTION, $row['VAR_DBCONNECTION']);
$criteria->add(ProcessVariablesPeer::VAR_SQL, $row['VAR_SQL']);
$criteria->add(ProcessVariablesPeer::VAR_NULL, $row['VAR_NULL']);
$criteria->add(ProcessVariablesPeer::VAR_DEFAULT, $row['VAR_DEFAULT']);
$criteria->add(ProcessVariablesPeer::VAR_ACCEPTED_VALUES, $row['VAR_ACCEPTED_VALUES']);
$criteria->add(ProcessVariablesPeer::INP_DOC_UID, $row['INP_DOC_UID']);
BasePeer::doInsert($criteria, $con);
} }
$con->commit();
} catch (Exception $e) { } catch (Exception $e) {
$con->rollback();
throw $e; throw $e;
} }
} }
@@ -1895,47 +1921,86 @@ class Processes
/** /**
* Gets Input Documents Rows from aProcess. * Gets Input Documents Rows from aProcess.
* *
* @param $sProUid string. * @param string $proUid
* @return void *
* @return array
* @throws Exception
*/ */
public function getInputRows($sProUid) public function getInputRows($proUid)
{ {
try { try {
$aInput = array(); $inputList = [];
$oCriteria = new Criteria('workflow'); $criteria = new Criteria('workflow');
$oCriteria->add(InputDocumentPeer::PRO_UID, $sProUid); $criteria->add(InputDocumentPeer::PRO_UID, $proUid);
$oDataset = InputDocumentPeer::doSelectRS($oCriteria); $dataset = InputDocumentPeer::doSelectRS($criteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $dataset->next();
while ($aRow = $oDataset->getRow()) { while ($row = $dataset->getRow()) {
$oInput = new InputDocument(); $input = new InputDocument();
$aInput[] = $oInput->load($aRow['INP_DOC_UID']); $infoInput = $input->load($row['INP_DOC_UID']);
$oDataset->next(); unset($infoInput['INP_DOC_ID']);
$inputList[] = $infoInput;
$dataset->next();
} }
return $aInput;
} catch (Exception $oError) { return $inputList;
throw ($oError); } catch (Exception $error) {
throw ($error);
} }
} }
/** /**
* Create Input Documents Rows from an array, removing those Objects * Create Input Documents
* with the same UID, and recreaiting the records from the array data. *
* @param array $input
* *
* @param $aInput array.
* @return void * @return void
* @throws Exception
*/ */
public function createInputRows($aInput) public function createInputRows($input)
{ {
foreach ($aInput as $key => $row) { try {
$oInput = new InputDocument(); $con = Propel::getConnection(InputDocumentPeer::DATABASE_NAME);
//unset ($row['TAS_UID']); $con->begin();
if ($oInput->InputExists($row['INP_DOC_UID'])) { foreach ($input as $key => $row) {
$oInput->remove($row['INP_DOC_UID']); //Prepare the delete
$criteria = new Criteria(InputDocumentPeer::DATABASE_NAME);
$criteria->addSelectColumn('*');
$criteria->add(InputDocumentPeer::INP_DOC_UID, $row['INP_DOC_UID']);
//Get the INP_DOC_ID column
$dataSet = BasePeer::doSelect($criteria, $con);
$dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($dataSet->next()) {
$inputInfo = $dataSet->getRow();
$row['INP_DOC_ID'] = $inputInfo['INP_DOC_ID'];
} else {
$row['INP_DOC_ID'] = null;
}
BasePeer::doDelete($criteria, $con);
//Prepare the insert
$criteria = new Criteria(InputDocumentPeer::DATABASE_NAME);
$criteria->add(InputDocumentPeer::INP_DOC_ID, $row['INP_DOC_ID']);
$criteria->add(InputDocumentPeer::INP_DOC_UID, $row['INP_DOC_UID']);
$criteria->add(InputDocumentPeer::PRO_UID, $row['PRO_UID']);
$criteria->add(InputDocumentPeer::INP_DOC_TITLE, $row['INP_DOC_TITLE']);
$criteria->add(InputDocumentPeer::INP_DOC_DESCRIPTION, $row['INP_DOC_DESCRIPTION']);
$criteria->add(InputDocumentPeer::INP_DOC_FORM_NEEDED, $row['INP_DOC_FORM_NEEDED']);
$criteria->add(InputDocumentPeer::INP_DOC_ORIGINAL, $row['INP_DOC_ORIGINAL']);
$criteria->add(InputDocumentPeer::INP_DOC_PUBLISHED, $row['INP_DOC_PUBLISHED']);
$criteria->add(InputDocumentPeer::INP_DOC_VERSIONING, $row['INP_DOC_VERSIONING']);
$criteria->add(InputDocumentPeer::INP_DOC_DESTINATION_PATH, $row['INP_DOC_DESTINATION_PATH']);
$criteria->add(InputDocumentPeer::INP_DOC_TAGS, $row['INP_DOC_TAGS']);
$criteria->add(InputDocumentPeer::INP_DOC_TYPE_FILE, $row['INP_DOC_TYPE_FILE']);
$criteria->add(InputDocumentPeer::INP_DOC_MAX_FILESIZE, $row['INP_DOC_MAX_FILESIZE']);
$criteria->add(InputDocumentPeer::INP_DOC_MAX_FILESIZE_UNIT, $row['INP_DOC_MAX_FILESIZE_UNIT']);
BasePeer::doInsert($criteria, $con);
} }
$res = $oInput->create($row); $con->commit();
} catch (Exception $e) {
$con->rollback();
throw $e;
} }
return;
} }
/** /**
@@ -2029,47 +2094,96 @@ class Processes
/** /**
* Gets the Output Documents Rows from a Process. * Gets the Output Documents Rows from a Process.
* *
* @param $sProUid string. * @param string $proUid
* @return $aOutput array *
* @return array
* @throws Exception
*/ */
public function getOutputRows($sProUid) public function getOutputRows($proUid)
{ {
try { try {
$aOutput = array(); $outputList = [];
$oCriteria = new Criteria('workflow'); $criteria = new Criteria('workflow');
$oCriteria->add(OutputDocumentPeer::PRO_UID, $sProUid); $criteria->add(OutputDocumentPeer::PRO_UID, $proUid);
$oDataset = OutputDocumentPeer::doSelectRS($oCriteria); $dataset = OutputDocumentPeer::doSelectRS($criteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $dataset->next();
while ($aRow = $oDataset->getRow()) { while ($row = $dataset->getRow()) {
$oOutput = new OutputDocument(); $output = new OutputDocument();
$aOutput[] = $oOutput->Load($aRow['OUT_DOC_UID']); $infoOutput = $output->Load($row['OUT_DOC_UID']);
$oDataset->next(); unset($infoOutput['OUT_DOC_ID']);
$outputList[] = $infoOutput;
$dataset->next();
} }
return $aOutput;
} catch (Exception $oError) { return $outputList;
throw ($oError); } catch (Exception $error) {
throw ($error);
} }
} }
/** /**
* Create Input Documents Rows from an array, removing those Objects * Create Input Documents
* with the same UID, and recreaiting the records from the array data. *
* @param array $output
* *
* @param $aOutput array.
* @return void * @return void
* @throws Exception
*/ */
public function createOutputRows($aOutput) public function createOutputRows($output)
{ {
foreach ($aOutput as $key => $row) { try {
$oOutput = new OutputDocument(); $con = Propel::getConnection(OutputDocumentPeer::DATABASE_NAME);
//unset ($row['TAS_UID']); $con->begin();
if ($oOutput->OutputExists($row['OUT_DOC_UID'])) { foreach ($output as $key => $row) {
$oOutput->remove($row['OUT_DOC_UID']); //Prepare the delete
$criteria = new Criteria(OutputDocumentPeer::DATABASE_NAME);
$criteria->addSelectColumn('*');
$criteria->add(OutputDocumentPeer::OUT_DOC_UID, $row['OUT_DOC_UID']);
//Get the OUT_DOC_ID column
$dataSet = BasePeer::doSelect($criteria, $con);
$dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($dataSet->next()) {
$outputInfo = $dataSet->getRow();
$row['OUT_DOC_ID'] = $outputInfo['OUT_DOC_ID'];
} else {
$row['OUT_DOC_ID'] = null;
}
BasePeer::doDelete($criteria, $con);
//Prepare the insert
$criteria = new Criteria(OutputDocumentPeer::DATABASE_NAME);
$criteria->add(OutputDocumentPeer::OUT_DOC_ID, $row['OUT_DOC_ID']);
$criteria->add(OutputDocumentPeer::OUT_DOC_UID, $row['OUT_DOC_UID']);
$criteria->add(OutputDocumentPeer::OUT_DOC_TITLE, $row['OUT_DOC_TITLE']);
$criteria->add(OutputDocumentPeer::OUT_DOC_DESCRIPTION, $row['OUT_DOC_DESCRIPTION']);
$criteria->add(OutputDocumentPeer::OUT_DOC_FILENAME, $row['OUT_DOC_FILENAME']);
$criteria->add(OutputDocumentPeer::OUT_DOC_TEMPLATE, $row['OUT_DOC_TEMPLATE']);
$criteria->add(OutputDocumentPeer::PRO_UID, $row['PRO_UID']);
$criteria->add(OutputDocumentPeer::OUT_DOC_REPORT_GENERATOR, $row['OUT_DOC_REPORT_GENERATOR']);
$criteria->add(OutputDocumentPeer::OUT_DOC_LANDSCAPE, $row['OUT_DOC_LANDSCAPE']);
$criteria->add(OutputDocumentPeer::OUT_DOC_MEDIA, $row['OUT_DOC_MEDIA']);
$criteria->add(OutputDocumentPeer::OUT_DOC_LEFT_MARGIN, $row['OUT_DOC_LEFT_MARGIN']);
$criteria->add(OutputDocumentPeer::OUT_DOC_RIGHT_MARGIN, $row['OUT_DOC_RIGHT_MARGIN']);
$criteria->add(OutputDocumentPeer::OUT_DOC_TOP_MARGIN, $row['OUT_DOC_TOP_MARGIN']);
$criteria->add(OutputDocumentPeer::OUT_DOC_BOTTOM_MARGIN, $row['OUT_DOC_BOTTOM_MARGIN']);
$criteria->add(OutputDocumentPeer::OUT_DOC_GENERATE, $row['OUT_DOC_GENERATE']);
$criteria->add(OutputDocumentPeer::OUT_DOC_CURRENT_REVISION, $row['OUT_DOC_CURRENT_REVISION']);
$criteria->add(OutputDocumentPeer::OUT_DOC_FIELD_MAPPING, $row['OUT_DOC_FIELD_MAPPING']);
$criteria->add(OutputDocumentPeer::OUT_DOC_VERSIONING, $row['OUT_DOC_VERSIONING']);
$criteria->add(OutputDocumentPeer::OUT_DOC_DESTINATION_PATH, $row['OUT_DOC_DESTINATION_PATH']);
$criteria->add(OutputDocumentPeer::OUT_DOC_TAGS, $row['OUT_DOC_TAGS']);
$criteria->add(OutputDocumentPeer::OUT_DOC_PDF_SECURITY_ENABLED, $row['OUT_DOC_PDF_SECURITY_ENABLED']);
$criteria->add(OutputDocumentPeer::OUT_DOC_PDF_SECURITY_OPEN_PASSWORD, $row['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD']);
$criteria->add(OutputDocumentPeer::OUT_DOC_PDF_SECURITY_OWNER_PASSWORD, $row['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD']);
$criteria->add(OutputDocumentPeer::OUT_DOC_PDF_SECURITY_PERMISSIONS, $row['OUT_DOC_PDF_SECURITY_PERMISSIONS']);
$criteria->add(OutputDocumentPeer::OUT_DOC_OPEN_TYPE, $row['OUT_DOC_OPEN_TYPE']);
BasePeer::doInsert($criteria, $con);
} }
$res = $oOutput->create($row); $con->commit();
} catch (Exception $e) {
$con->rollback();
throw $e;
} }
return;
} }
/** /**
@@ -2665,37 +2779,75 @@ class Processes
/** /**
* Create Step Rows from a Process * Create Step Rows from a Process
* *
* @param $aStep array. * @param array $step
*
* @return void. * @return void.
* @throws Exception
*/ */
public function createStepRows($aStep) public function createStepRows($step)
{ {
foreach ($aStep as $key => $row) { try {
$oStep = new Step(); $con = Propel::getConnection(StepPeer::DATABASE_NAME);
if (isset($row['STEP_UID'])) { $con->begin();
if ($oStep->StepExists($row['STEP_UID'])) { foreach ($step as $key => $row) {
$oStep->remove($row['STEP_UID']); if (isset($row['STEP_UID'])) {
//Prepare the delete
$criteria = new Criteria(StepPeer::DATABASE_NAME);
$criteria->addSelectColumn('*');
$criteria->add(StepPeer::STEP_UID, $row['STEP_UID']);
BasePeer::doDelete($criteria, $con);
//Prepare the insert
$criteria = new Criteria(StepPeer::DATABASE_NAME);
$criteria->add(StepPeer::STEP_UID, $row['STEP_UID']);
$criteria->add(StepPeer::PRO_UID, $row['PRO_UID']);
$criteria->add(StepPeer::TAS_UID, $row['TAS_UID']);
$criteria->add(StepPeer::STEP_TYPE_OBJ, $row['STEP_TYPE_OBJ']);
$criteria->add(StepPeer::STEP_UID_OBJ, $row['STEP_UID_OBJ']);
$criteria->add(StepPeer::STEP_CONDITION, $row['STEP_CONDITION']);
$criteria->add(StepPeer::STEP_POSITION, $row['STEP_POSITION']);
$criteria->add(StepPeer::STEP_MODE, $row['STEP_MODE']);
BasePeer::doInsert($criteria, $con);
} }
$res = $oStep->create($row);
} }
$con->commit();
} catch (Exception $e) {
$con->rollback();
throw $e;
} }
return;
} }
/** /**
* Create Step Supervisor Rows for a Process from an array of data * Create Step Supervisor Rows for a Process from an array of data
* *
* @param $aStepSupervisor array. * @param array $stepSupervisor
*
* @return void. * @return void.
* @throws Exception
*/ */
public function createStepSupervisorRows($aStepSupervisor) public function createStepSupervisorRows($stepSupervisor)
{ {
foreach ($aStepSupervisor as $key => $row) { try {
$oStepSupervisor = new StepSupervisor(); $con = Propel::getConnection(StepSupervisorPeer::DATABASE_NAME);
if ($oStepSupervisor->Exists($row['STEP_UID'])) { $con->begin();
$oStepSupervisor->remove($row['STEP_UID']); foreach ($stepSupervisor as $key => $row) {
//Prepare the delete
$criteria = new Criteria(StepSupervisorPeer::DATABASE_NAME);
$criteria->addSelectColumn('*');
$criteria->add(StepSupervisorPeer::STEP_UID, $row['STEP_UID']);
BasePeer::doDelete($criteria, $con);
//Prepare the insert
$criteria = new Criteria(StepSupervisorPeer::DATABASE_NAME);
$criteria->add(StepSupervisorPeer::STEP_UID, $row['STEP_UID']);
$criteria->add(StepSupervisorPeer::PRO_UID, $row['PRO_UID']);
$criteria->add(StepSupervisorPeer::STEP_TYPE_OBJ, $row['STEP_TYPE_OBJ']);
$criteria->add(StepSupervisorPeer::STEP_UID_OBJ, $row['STEP_UID_OBJ']);
$criteria->add(StepSupervisorPeer::STEP_POSITION, $row['STEP_POSITION']);
BasePeer::doInsert($criteria, $con);
} }
$oStepSupervisor->create($row); $con->commit();
} catch (Exception $e) {
$con->rollback();
throw $e;
} }
} }
@@ -2764,26 +2916,31 @@ class Processes
/** /**
* Get Dynaform Rows from a Process * Get Dynaform Rows from a Process
* *
* @param string $sProUid * @param string $proUid
* @return $aDynaform array *
* @return array
* @throws Exception
*/ */
public function getDynaformRows($sProUid) public function getDynaformRows($proUid)
{ {
try { try {
$aDynaform = array(); $dynaformList = [];
$oCriteria = new Criteria('workflow'); $criteria = new Criteria('workflow');
$oCriteria->add(DynaformPeer::PRO_UID, $sProUid); $criteria->add(DynaformPeer::PRO_UID, $proUid);
$oDataset = DynaformPeer::doSelectRS($oCriteria); $dataset = DynaformPeer::doSelectRS($criteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $dataset->next();
while ($aRow = $oDataset->getRow()) { while ($row = $dataset->getRow()) {
$oDynaform = new Dynaform(); $dynaform = new Dynaform();
$aDynaform[] = $oDynaform->Load($aRow['DYN_UID']); $infoDyn = $dynaform->Load($row['DYN_UID']);
$oDataset->next(); unset($infoDyn['DYN_ID']);
$dynaformList[] = $infoDyn;
$dataset->next();
} }
return $aDynaform;
} catch (Exception $oError) { return $dynaformList;
throw ($oError); } catch (Exception $error) {
throw ($error);
} }
} }
@@ -2906,22 +3063,53 @@ class Processes
} }
/** /**
* Create Dynaform Rows for a Process form an array * Create dynaforms for a process
*
* @param array $dynaforms
* *
* @param array $aDynaform
* @return void * @return void
* @throws Exception
*/ */
public function createDynaformRows($aDynaform) public function createDynaformRows($dynaforms)
{ {
foreach ($aDynaform as $key => $row) { try {
$oDynaform = new Dynaform(); $con = Propel::getConnection(DynaformPeer::DATABASE_NAME);
//unset ($row['TAS_UID']); $con->begin();
if ($oDynaform->exists($row['DYN_UID'])) { foreach ($dynaforms as $key => $row) {
$oDynaform->remove($row['DYN_UID']); //Prepare the delete
$criteria = new Criteria(DynaformPeer::DATABASE_NAME);
$criteria->addSelectColumn('*');
$criteria->add(DynaformPeer::DYN_UID, $row['DYN_UID']);
//Get the DYN_ID column
$dataSet = BasePeer::doSelect($criteria, $con);
$dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($dataSet->next()) {
$dynInfo = $dataSet->getRow();
$row['DYN_ID'] = $dynInfo['DYN_ID'];
} else {
$row['DYN_ID'] = null;
}
BasePeer::doDelete($criteria, $con);
//Prepare the insert
$criteria = new Criteria(DynaformPeer::DATABASE_NAME);
$criteria->add(DynaformPeer::DYN_ID, $row['DYN_ID']);
$criteria->add(DynaformPeer::DYN_UID, $row['DYN_UID']);
$criteria->add(DynaformPeer::DYN_TITLE, $row['DYN_TITLE']);
$criteria->add(DynaformPeer::DYN_DESCRIPTION, $row['DYN_DESCRIPTION']);
$criteria->add(DynaformPeer::PRO_UID, $row['PRO_UID']);
$criteria->add(DynaformPeer::DYN_TYPE, $row['DYN_TYPE']);
$criteria->add(DynaformPeer::DYN_FILENAME, $row['DYN_FILENAME']);
$criteria->add(DynaformPeer::DYN_CONTENT, $row['DYN_CONTENT']);
$criteria->add(DynaformPeer::DYN_LABEL, $row['DYN_LABEL']);
$criteria->add(DynaformPeer::DYN_VERSION, $row['DYN_VERSION']);
$criteria->add(DynaformPeer::DYN_UPDATE_DATE, $row['DYN_UPDATE_DATE']);
BasePeer::doInsert($criteria, $con);
} }
$res = $oDynaform->create($row); $con->commit();
} catch (Exception $e) {
$con->rollback();
throw $e;
} }
return;
} }
/** /**
@@ -3035,20 +3223,38 @@ class Processes
/** /**
* Create Step Trigger Rows for a Process form an array * Create Step Trigger Rows for a Process form an array
* *
* @param array $aTrigger * @param array $trigger
*
* @return void * @return void
* @throws Exception
*/ */
public function createTriggerRows($aTrigger) public function createTriggerRows($trigger)
{ {
foreach ($aTrigger as $key => $row) { try {
$oTrigger = new Triggers(); $con = Propel::getConnection(TriggersPeer::DATABASE_NAME);
//unset ($row['TAS_UID']); $con->begin();
if ($oTrigger->TriggerExists($row['TRI_UID'])) { foreach ($trigger as $key => $row) {
$oTrigger->remove($row['TRI_UID']); //Prepare the delete
$criteria = new Criteria(TriggersPeer::DATABASE_NAME);
$criteria->addSelectColumn('*');
$criteria->add(TriggersPeer::TRI_UID, $row['TRI_UID']);
BasePeer::doDelete($criteria, $con);
//Prepare the insert
$criteria = new Criteria(TriggersPeer::DATABASE_NAME);
$criteria->add(TriggersPeer::TRI_UID, $row['TRI_UID']);
$criteria->add(TriggersPeer::TRI_TITLE, $row['TRI_TITLE']);
$criteria->add(TriggersPeer::TRI_DESCRIPTION, $row['TRI_DESCRIPTION']);
$criteria->add(TriggersPeer::PRO_UID, $row['PRO_UID']);
$criteria->add(TriggersPeer::TRI_TYPE, $row['TRI_TYPE']);
$criteria->add(TriggersPeer::TRI_WEBBOT, $row['TRI_WEBBOT']);
$criteria->add(TriggersPeer::TRI_PARAM, $row['TRI_PARAM']);
BasePeer::doInsert($criteria, $con);
} }
$res = $oTrigger->create($row); $con->commit();
} catch (Exception $e) {
$con->rollback();
throw $e;
} }
return;
} }
/** /**
@@ -3736,21 +3942,40 @@ class Processes
/** /**
* Get Task User Rows from an array of data * Get Task User Rows from an array of data
* *
* @param array $aTaskUser * @param array $taskUser
* @return array $aStepTrigger *
* @return void
* @throws Exception
*/ */
public function createTaskUserRows($aTaskUser) public function createTaskUserRows($taskUser)
{ {
if (is_array($aTaskUser)) { try {
foreach ($aTaskUser as $key => $row) { if (is_array($taskUser)) {
$oTaskUser = new TaskUser(); $con = Propel::getConnection(TaskUserPeer::DATABASE_NAME);
if ($oTaskUser->TaskUserExists($row['TAS_UID'], $row['USR_UID'], $row['TU_TYPE'], $row['TU_RELATION'])) { $con->begin();
$oTaskUser->remove($row['TAS_UID'], $row['USR_UID'], $row['TU_TYPE'], $row['TU_RELATION']); foreach ($taskUser as $key => $row) {
//Prepare the delete
$criteria = new Criteria(TaskUserPeer::DATABASE_NAME);
$criteria->addSelectColumn('*');
$criteria->add(TaskUserPeer::TAS_UID, $row['TAS_UID']);
$criteria->add(TaskUserPeer::USR_UID, $row['USR_UID']);
$criteria->add(TaskUserPeer::TU_TYPE, $row['TU_TYPE']);
$criteria->add(TaskUserPeer::TU_RELATION, $row['TU_RELATION']);
$dataSet = BasePeer::doSelect($criteria, $con);
if (!$dataSet->next()) {
/** The validation added in method TaskUser->create is not required,
* because in the current method only assigned GROUPS are present.
* if (RBAC::isGuestUserUid($row['USR_UID']) && !$bmWebEntry->isTaskAWebEntry($row['TAS_UID'])) {...
*/
BasePeer::doInsert($criteria, $con, false);
}
} }
$res = $oTaskUser->create($row); $con->commit();
} }
} catch (Exception $e) {
$con->rollback();
throw $e;
} }
return;
} }
/** /**
@@ -3794,21 +4019,42 @@ class Processes
* @param array $group * @param array $group
* *
* @return void * @return void
* @throws Exception
*/ */
public function createGroupRow($group) public function createGroupRow($group)
{ {
foreach ($group as $key => $row) { try {
$groupInfo = []; $con = Propel::getConnection(GroupwfPeer::DATABASE_NAME);
$groupWf = new Groupwf(); $con->begin();
if ($groupWf->GroupwfExists($row['GRP_UID'])) { foreach ($group as $key => $row) {
$groupInfo = $groupWf->Load($row['GRP_UID']); //Prepare the delete
$groupWf->remove($row['GRP_UID']); $criteria = new Criteria(GroupwfPeer::DATABASE_NAME);
$criteria->addSelectColumn('*');
$criteria->add(GroupwfPeer::GRP_UID, $row['GRP_UID']);
//Get the GRP_ID column
$dataSet = BasePeer::doSelect($criteria, $con);
$dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($dataSet->next()) {
$groupInfo = $dataSet->getRow();
$row['GRP_ID'] = $groupInfo['GRP_ID'];
} else {
$row['GRP_ID'] = null;
}
BasePeer::doDelete($criteria, $con);
//Prepare the insert
$criteria = new Criteria(GroupwfPeer::DATABASE_NAME);
$criteria->add(GroupwfPeer::GRP_ID, $row['GRP_ID']);
$criteria->add(GroupwfPeer::GRP_UID, $row['GRP_UID']);
$criteria->add(GroupwfPeer::GRP_TITLE, $row['GRP_TITLE']);
$criteria->add(GroupwfPeer::GRP_STATUS, $row['GRP_STATUS']);
$criteria->add(GroupwfPeer::GRP_LDAP_DN, $row['GRP_LDAP_DN']);
$criteria->add(GroupwfPeer::GRP_UX, $row['GRP_UX']);
BasePeer::doInsert($criteria, $con);
} }
//We will to keep the GRP_ID $con->commit();
if (!empty($groupInfo['GRP_ID'])) { } catch (Exception $e) {
$row['GRP_ID'] = $groupInfo['GRP_ID']; $con->rollback();
} throw $e;
$res = $groupWf->create($row);
} }
} }
@@ -4212,7 +4458,8 @@ class Processes
* @param string $processUid Unique id of Process * @param string $processUid Unique id of Process
* @param array $arrayData Data * @param array $arrayData Data
* *
* return void * @return void
* @throws Exception
*/ */
public function createActionsByEmail($processUid, array $arrayData) public function createActionsByEmail($processUid, array $arrayData)
{ {
@@ -4784,45 +5031,35 @@ class Processes
/** /**
* function checkExistingGroups * function checkExistingGroups
* checkExistingGroups check if any of the groups listed in the parameter * checkExistingGroups check if any of the groups listed in the parameter
* array exist and wich are those, that is the result $sFilteredGroups array. * array exist and which are those, that is the result $sFilteredGroups array.
* *
* @author gustavo cruz gustavo-at-colosa.com * @param array $groupList, array of a group list
* @param $sGroupList array of a group list * @return array|null, array of existing groups or null
* @return $existingGroupList array of existing groups or null
*/ */
public function checkExistingGroups($sGroupList) public function checkExistingGroups($groupList)
{ {
$aGroupwf = array(); $existingGroupList = [];
$oCriteria = new Criteria('workflow'); $criteria = new Criteria('workflow');
$oCriteria->addSelectColumn(GroupwfPeer::GRP_UID); $criteria->addSelectColumn(GroupwfPeer::GRP_UID);
$oCriteria->addSelectColumn(GroupwfPeer::GRP_TITLE); $criteria->addSelectColumn(GroupwfPeer::GRP_TITLE);
$oDataset = GroupwfPeer::doSelectRS($oCriteria); $dataset = GroupwfPeer::doSelectRS($criteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $dataset->next();
while ($aRow = $oDataset->getRow()) { while ($row = $dataset->getRow()) {
$aGroupwf[] = $aRow; foreach ($groupList as $group) {
$oDataset->next(); //Check if any group name exists in the database
} if ($row['GRP_TITLE'] === $group['GRP_TITLE'] && $row['GRP_UID'] !== $group['GRP_UID']) {
//check if any group name exists in the dbase $groupWf = GroupwfPeer::retrieveByPk($group['GRP_UID']);
if (is_array($sGroupList)) { if (is_object($groupWf) && get_class($groupWf) == 'Groupwf') {
foreach ($aGroupwf as $groupBase) { $group['GRP_UID'] = G::generateUniqueID();
foreach ($sGroupList as $group) {
if ($groupBase['GRP_TITLE'] == $group['GRP_TITLE'] && $groupBase['GRP_UID'] != $group['GRP_UID']) {
$oPro = GroupwfPeer::retrieveByPk( $group['GRP_UID'] );
if(is_object( $oPro ) && get_class( $oPro ) == 'Groupwf') {
$group['GRP_UID'] = G::generateUniqueID();
}
$existingGroupList[] = $group;
} }
$existingGroupList[] = $group;
} }
} }
$dataset->next();
} }
//return $sGroupList;
if (isset($existingGroupList)) { return !empty($existingGroupList) ? $existingGroupList : null;
return $existingGroupList;
} else {
return null;
}
} }
/** /**
@@ -5499,54 +5736,21 @@ class Processes
$this->createProcessPropertiesFromData($oData); $this->createProcessPropertiesFromData($oData);
// $this->createLaneRows( $oData->lanes );
//
//
// if (isset( $oData->gateways )) {
// $this->createGatewayRows( $oData->gateways );
// }
// $this->createDynaformRows( $oData->dynaforms );
// $this->createInputRows( $oData->inputs );
// $this->createOutputRows( $oData->outputs );
// $this->createStepRows( $oData->steps );
// $this->createStepSupervisorRows( isset( $oData->stepSupervisor ) ? $oData->stepSupervisor : array () );
// $this->createTriggerRows( $oData->triggers );
// $this->createStepTriggerRows( $oData->steptriggers );
// $this->createTaskUserRows( $oData->taskusers );
// $this->createGroupRow( $oData->groupwfs );
// $this->createDBConnectionsRows( isset( $oData->dbconnections ) ? $oData->dbconnections : array () );
// $this->createReportTables( isset( $oData->reportTables ) ? $oData->reportTables : array (), isset( $oData->reportTablesVars ) ? $oData->reportTablesVars : array () );
// $this->createSubProcessRows( isset( $oData->subProcess ) ? $oData->subProcess : array () );
// $this->createCaseTrackerRows( isset( $oData->caseTracker ) ? $oData->caseTracker : array () );
// $this->createCaseTrackerObjectRows( isset( $oData->caseTrackerObject ) ? $oData->caseTrackerObject : array () );
// $this->createObjectPermissionsRows( isset( $oData->objectPermissions ) ? $oData->objectPermissions : array () );
// $this->createStageRows( isset( $oData->stage ) ? $oData->stage : array () );
//
// $this->createFieldCondition( isset( $oData->fieldCondition ) ? $oData->fieldCondition : array (), $oData->dynaforms );
//
// // Create before to createRouteRows for avoid duplicates
// $this->createEventRows( isset( $oData->event ) ? $oData->event : array () );
//
// $this->createCaseSchedulerRows( isset( $oData->caseScheduler ) ? $oData->caseScheduler : array () );
//
// //Create data related to Configuration table
// $this->createTaskExtraPropertiesRows( isset( $oData->taskExtraProperties ) ? $oData->taskExtraProperties : array () );
// and finally create the files, dynaforms (xml and html), emailTemplates and Public files
$this->createFiles($oData, $pmFilename); $this->createFiles($oData, $pmFilename);
} }
/**
* This function creates a new Process, defined in the object $oData
*
* @param object $oData
*
* @return void
*/
public function createProcessPropertiesFromData($oData) public function createProcessPropertiesFromData($oData)
{ {
$arrayProcessData = $oData->process; $arrayProcessData = $oData->process;
// (*) Creating process dependencies
// creating the process category
$this->createProcessCategoryRow(isset($oData->processCategory) ? $oData->processCategory : null); $this->createProcessCategoryRow(isset($oData->processCategory) ? $oData->processCategory : null);
$this->createLaneRows($oData->lanes); $this->createLaneRows($oData->lanes);
if (isset($oData->gateways)) { if (isset($oData->gateways)) {
$this->createGatewayRows($oData->gateways); $this->createGatewayRows($oData->gateways);
} }
@@ -5557,8 +5761,8 @@ class Processes
$this->createStepSupervisorRows(isset($oData->stepSupervisor) ? $oData->stepSupervisor : array()); $this->createStepSupervisorRows(isset($oData->stepSupervisor) ? $oData->stepSupervisor : array());
$this->createTriggerRows($oData->triggers); $this->createTriggerRows($oData->triggers);
$this->createStepTriggerRows($oData->steptriggers); $this->createStepTriggerRows($oData->steptriggers);
$this->createTaskUserRows($oData->taskusers);
$this->createGroupRow($oData->groupwfs); $this->createGroupRow($oData->groupwfs);
$this->createTaskUserRows($oData->taskusers);
$this->createDBConnectionsRows(isset($oData->dbconnections) ? $oData->dbconnections : array()); $this->createDBConnectionsRows(isset($oData->dbconnections) ? $oData->dbconnections : array());
$this->createReportTables(isset($oData->reportTables) ? $oData->reportTables : array(), isset($oData->reportTablesVars) ? $oData->reportTablesVars : array()); $this->createReportTables(isset($oData->reportTables) ? $oData->reportTables : array(), isset($oData->reportTablesVars) ? $oData->reportTablesVars : array());
$this->createSubProcessRows(isset($oData->subProcess) ? $oData->subProcess : array()); $this->createSubProcessRows(isset($oData->subProcess) ? $oData->subProcess : array());
@@ -5566,17 +5770,14 @@ class Processes
$this->createCaseTrackerObjectRows(isset($oData->caseTrackerObject) ? $oData->caseTrackerObject : array()); $this->createCaseTrackerObjectRows(isset($oData->caseTrackerObject) ? $oData->caseTrackerObject : array());
$this->createObjectPermissionsRows(isset($oData->objectPermissions) ? $oData->objectPermissions : array()); $this->createObjectPermissionsRows(isset($oData->objectPermissions) ? $oData->objectPermissions : array());
$this->createStageRows(isset($oData->stage) ? $oData->stage : array()); $this->createStageRows(isset($oData->stage) ? $oData->stage : array());
$this->createFieldCondition(isset($oData->fieldCondition) ? $oData->fieldCondition : array(), $oData->dynaforms); $this->createFieldCondition(isset($oData->fieldCondition) ? $oData->fieldCondition : array(), $oData->dynaforms);
// Create before to createRouteRows for avoid duplicates // Create before to createRouteRows for avoid duplicates
$this->createEventRows(isset($oData->event) ? $oData->event : array()); $this->createEventRows(isset($oData->event) ? $oData->event : array());
$this->createCaseSchedulerRows(isset($oData->caseScheduler) ? $oData->caseScheduler : array()); $this->createCaseSchedulerRows(isset($oData->caseScheduler) ? $oData->caseScheduler : array());
//Create data related to Configuration table //Create data related to Configuration table
$this->createTaskExtraPropertiesRows(isset($oData->taskExtraProperties) ? $oData->taskExtraProperties : array()); $this->createTaskExtraPropertiesRows(isset($oData->taskExtraProperties) ? $oData->taskExtraProperties : array());
$this->createProcessUser((isset($oData->processUser)) ? $oData->processUser : array()); $this->createProcessUser((isset($oData->processUser)) ? $oData->processUser : array());
$this->createProcessVariables((isset($oData->processVariables)) ? $oData->processVariables : array()); $this->createProcessVariables((isset($oData->processVariables)) ? $oData->processVariables : array());
$this->createWebEntry($arrayProcessData["PRO_UID"], $arrayProcessData["PRO_CREATE_USER"], (isset($oData->webEntry)) ? $oData->webEntry : array()); $this->createWebEntry($arrayProcessData["PRO_UID"], $arrayProcessData["PRO_CREATE_USER"], (isset($oData->webEntry)) ? $oData->webEntry : array());
@@ -5715,10 +5916,12 @@ class Processes
} }
/** /**
* this function creates a new Process, defined in the object $oData * This function creates a new Process, defined in the object $oData
* *
* @param string $sProUid * @param object $oData
* @return boolean * @param string $pmFilename
*
* @return void
*/ */
public function updateProcessFromData($oData, $pmFilename) public function updateProcessFromData($oData, $pmFilename)
{ {
@@ -5736,8 +5939,8 @@ class Processes
$this->createStepSupervisorRows($oData->stepSupervisor); $this->createStepSupervisorRows($oData->stepSupervisor);
$this->createTriggerRows($oData->triggers); $this->createTriggerRows($oData->triggers);
$this->createStepTriggerRows($oData->steptriggers); $this->createStepTriggerRows($oData->steptriggers);
$this->createTaskUserRows($oData->taskusers);
$this->createGroupRow($oData->groupwfs); $this->createGroupRow($oData->groupwfs);
$this->createTaskUserRows($oData->taskusers);
$this->createDBConnectionsRows($oData->dbconnections); $this->createDBConnectionsRows($oData->dbconnections);
$this->updateReportTables($oData->reportTables, $oData->reportTablesVars); $this->updateReportTables($oData->reportTables, $oData->reportTablesVars);
$this->createFiles($oData, $pmFilename); $this->createFiles($oData, $pmFilename);

View File

@@ -195,7 +195,7 @@ abstract class Importer
} catch (\Exception $e) { } catch (\Exception $e) {
throw $e; throw $e;
} }
$this->removeProject(); $this->removeProject(true);
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
} else { } else {
$granularObj = new \ProcessMaker\BusinessModel\Migrator\GranularImporter(); $granularObj = new \ProcessMaker\BusinessModel\Migrator\GranularImporter();
@@ -300,8 +300,6 @@ abstract class Importer
$this->preserveEmailEventConfiguration($emailEvent); $this->preserveEmailEventConfiguration($emailEvent);
} }
} }
$this->preserveCurrentId($this->importData["tables"]["workflow"]);
$objectList = $granularObj->loadObjectsListSelected($this->importData, $newObjectArray); $objectList = $granularObj->loadObjectsListSelected($this->importData, $newObjectArray);
if (sizeof($objectList) > 0 && $processGranulate) { if (sizeof($objectList) > 0 && $processGranulate) {
@@ -604,8 +602,6 @@ abstract class Importer
foreach ($arrayWorkflowTables["emailEvent"] as &$emailEvent) { foreach ($arrayWorkflowTables["emailEvent"] as &$emailEvent) {
$this->preserveEmailEventConfiguration($emailEvent); $this->preserveEmailEventConfiguration($emailEvent);
} }
$this->preserveCurrentId($arrayWorkflowTables);
$this->importWfTables($arrayWorkflowTables); $this->importWfTables($arrayWorkflowTables);
@@ -952,70 +948,4 @@ abstract class Importer
} }
} }
/**
* Restore id values for the dynaforms, input documents and output documents.
*
* @param type $arrayWorkflowTables
*/
private function preserveCurrentId(&$arrayWorkflowTables)
{
$currentProcess = $this->getCurrentProcess();
//dynaforms
foreach ($arrayWorkflowTables["dynaforms"] as &$data) {
if (!is_object($currentProcess)) {
unset($data['DYN_ID']);
continue;
}
$currentElements = $currentProcess->dynaforms;
if (!is_array($currentElements)) {
unset($data['DYN_ID']);
continue;
}
foreach ($currentElements as $currentElement) {
if ($currentElement["PRO_UID"] === $data["PRO_UID"] &&
$currentElement["DYN_UID"] === $data["DYN_UID"]) {
$data['DYN_ID'] = $currentElement["DYN_ID"];
}
}
}
//input documents
foreach ($arrayWorkflowTables["inputs"] as &$data) {
if (!is_object($currentProcess)) {
unset($data['INP_DOC_ID']);
continue;
}
$currentElements = $currentProcess->inputs;
if (!is_array($currentElements)) {
unset($data['INP_DOC_ID']);
continue;
}
foreach ($currentElements as $currentElement) {
if ($currentElement["PRO_UID"] === $data["PRO_UID"] &&
$currentElement["INP_DOC_UID"] === $data["INP_DOC_UID"]) {
$data['INP_DOC_ID'] = $currentElement['INP_DOC_ID'];
}
}
}
//output documents
foreach ($arrayWorkflowTables["outputs"] as &$data) {
if (!is_object($currentProcess)) {
unset($data['OUT_DOC_ID']);
continue;
}
$currentElements = $currentProcess->outputs;
if (!is_array($currentElements)) {
unset($data['OUT_DOC_ID']);
continue;
}
foreach ($currentElements as $currentElement) {
if ($currentElement["PRO_UID"] === $data["PRO_UID"] &&
$currentElement["OUT_DOC_UID"] === $data["OUT_DOC_UID"]) {
$data['OUT_DOC_ID'] = $currentElement['OUT_DOC_ID'];
}
}
}
}
} }