. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ require_once ( "classes/model/Step.php" ); require_once ( "classes/model/Content.php" ); require_once ( "classes/model/AppDocumentPeer.php" ); require_once ( "classes/model/InputDocumentPeer.php" ); require_once ( "classes/model/OutputDocumentPeer.php" ); require_once ( "classes/model/DynaformPeer.php" ); $c = new Criteria(); $c->add ( StepPeer::PRO_UID, $_SESSION['PROCESS'] ); $c->add ( StepPeer::TAS_UID, $_SESSION['TASK'] ); $c->addAscendingOrderByColumn ( StepPeer::STEP_POSITION ); // classes G::LoadClass('tree'); G::LoadClass('pmScript'); G::LoadClass('case'); $oPluginRegistry = &PMPluginRegistry::getSingleton(); $externalSteps = $oPluginRegistry->getSteps(); $oTree = new Tree(); $oTree->nodeType = "blank"; $oTree->name = 'Steps'; $oTree->showSign = false; $tasUid = $_SESSION['TASK']; $rs = StepPeer::doSelect( $c ); $oCase = new Cases(); $Fields = $oCase->loadCase( $_SESSION['APPLICATION'] ); $oPMScript = new PMScript(); $oPMScript->setFields($Fields['APP_DATA'] ); foreach ( $rs as $key => $aRow ) { $bAccessStep = false; if (trim($aRow->getStepCondition()) != '') { $oPMScript->setScript( $aRow->getStepCondition() ); $bAccessStep = $oPMScript->evaluate(); } else { $bAccessStep = true; } if ($bAccessStep) { switch( $aRow->getStepTypeObj() ) { case 'DYNAFORM': $oDocument = DynaformPeer::retrieveByPK($aRow->getStepUidObj()); $stepTitle = $oDocument->getDynTitle(); break; case 'OUTPUT_DOCUMENT': $oDocument = OutputDocumentPeer::retrieveByPK($aRow->getStepUidObj()); $stepTitle = $oDocument->getOutDocTitle(); break; case 'INPUT_DOCUMENT': $oDocument = InputDocumentPeer::retrieveByPK($aRow->getStepUidObj()); $stepTitle = $oDocument->getInpDocTitle(); $sType = $oDocument->getInpDocFormNeeded(); break; case 'EXTERNAL': $stepTitle = 'unknown ' . $aRow->getStepUidObj(); $oPluginRegistry = &PMPluginRegistry::getSingleton (); foreach ( $externalSteps as $key=>$val ) { if ( $val->sStepId == $aRow->getStepUidObj() ) { $stepTitle = $val->sStepTitle; //default title $sNamespace = $val->sNamespace; $oPlugin =& $oPluginRegistry->getPlugin($sNamespace); $classFile = PATH_PLUGINS . $oPlugin->sNamespace . PATH_SEP . 'class.' . $oPlugin->sNamespace .'.php'; if ( file_exists ( $classFile ) ) { require_once ( $classFile ); $sClassName = $sNamespace . 'class'; $obj = new $sClassName( ); if (method_exists($obj, 'getExternalStepTitle')) { $stepTitle = $obj->getExternalStepTitle( $aRow->getStepUidObj(), $tasUid, $aRow->getStepPosition()); } } } } break; default: $stepTitle = $aRow->getStepUid(); } //$oNode =& $oTree->addChild($aRow->getStepUid(), ' ' . $aRow->getStepNameObj(), array('nodeType'=>'parent') ); $oNode =& $oTree->addChild($aRow->getStepUid(), ' ' . $stepTitle, array('nodeType'=>'parent') ); $oNode->plus = ''; $oNode->minus = ''; switch( $aRow->getStepTypeObj() ) { case 'DYNAFORM': $sOptions = ''; $sOptions .= ''; $sOptions .= '
' . G::LoadTranslation('ID_EDIT') . '
'; $oAux =& $oNode->addChild($aRow->getStepUid() . '_node', $sOptions, array('nodeType'=>'child')); break; case 'OUTPUT_DOCUMENT': $sOptions = ''; $oCriteria = new Criteria('workflow'); $oCriteria->add(AppDocumentPeer::APP_UID, $_SESSION['APPLICATION']); $oCriteria->add(AppDocumentPeer::DEL_INDEX, $_SESSION['INDEX']); $oCriteria->add(AppDocumentPeer::DOC_UID, $aRow->getStepUidObj()); $oCriteria->add(AppDocumentPeer::APP_DOC_TYPE, 'OUTPUT'); $oDataset = AppDocumentPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); if ($aRow2 = $oDataset->getRow()) { $sOptions .= ''; $sOptions .= ''; $sOptions .= ''; } else { $sOptions .= ''; } $sOptions .= '
' . G::LoadTranslation('ID_VIEW') . '' . G::LoadTranslation('ID_GENERATE') . '' . G::LoadTranslation('ID_DELETE') . '' . G::LoadTranslation('ID_GENERATE') . '
'; $oAux =& $oNode->addChild($aRow->getStepUid() . '_node', $sOptions, array('nodeType'=>'child')); break; case 'INPUT_DOCUMENT': $sOptions = ''; $sOptions .= ''; $sOptions .= '
' . ($sType == 'REAL' ? G::LoadTranslation('ID_NEW') : G::LoadTranslation('ID_ATTACH')) . '
'; $oCri = new Criteria; $oCri->add( AppDocumentPeer::APP_UID , $_SESSION['APPLICATION'] ); $oCri->add( AppDocumentPeer::DEL_INDEX , $_SESSION['INDEX'] ); $oCri->add( AppDocumentPeer::DOC_UID , $aRow->getStepUidObj() ); $oCri->add( AppDocumentPeer::APP_DOC_TYPE , 'INPUT' ); $oCri->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_INDEX); $aDocuments = AppDocumentPeer::doSelect($oCri); if (sizeof($aDocuments) !== 0) { $i = 1; $sOptions .= ''; reset($aDocuments); while ($oDocument = current($aDocuments)) { $aRow2 = $oDocument->toArray(BasePeer::TYPE_FIELDNAME); $oAux1 = new AppDocument(); $aAux = $oAux1->load($aRow2['APP_DOC_UID']); $sOptions .= ''; if ($aAux['APP_DOC_FILENAME'] != '') { $sAux = $aAux['APP_DOC_FILENAME']; } else { $sAux = $aAux['APP_DOC_COMMENT']; } $sOptions .= ''; global $oPluginRegistry; if (!$oPluginRegistry->existsTrigger ( PM_CASE_DOCUMENT_LIST )) { if (isset($_GET['DOC'])) { $sOptions .= ''; } else { $sOptions .= ''; } $sOptions .= ''; } $sOptions .= ''; $i++; next($aDocuments); } $sOptions .= '
' . $i . '.' . G::LoadTranslation('ID_VIEW') . '' . G::LoadTranslation('ID_VIEW') . '' . G::LoadTranslation('ID_DELETE') . '
'; } $oAux =& $oNode->addChild($aRow->getStepUid() . '_node', $sOptions, array('nodeType'=>'child')); break; case 'MESSAGE': $sOptions = ''; $sOptions .= ''; $sOptions .= '
'; $oAux =& $oNode->addChild($aRow['STEP_UID'] . '_node', $sOptions, array('nodeType'=>'child')); break; case 'EXTERNAL': $aActions = array ('action' => 'label' ); $oPluginRegistry = &PMPluginRegistry::getSingleton (); foreach ( $externalSteps as $key=>$val ) { if ( $val->sStepId == $aRow->getStepUidObj() ) { $stepTitle = $val->sStepTitle; //default title $sNamespace = $val->sNamespace; $oPlugin =& $oPluginRegistry->getPlugin($sNamespace); $classFile = PATH_PLUGINS . $oPlugin->sNamespace . PATH_SEP . 'class.' . $oPlugin->sNamespace .'.php'; if ( file_exists ( $classFile ) ) { require_once ( $classFile ); $sClassName = $sNamespace . 'class'; $obj = new $sClassName( ); if (method_exists($obj, 'getExternalStepAction')) { $aActions = $obj->getExternalStepAction( $aRow->getStepUidObj(), $aRow->getStepPosition()); } } } } $sOptions = ""; $sOptions .= "
"; foreach ( $aActions as $action => $label ) { $styleAction = $_GET['UID'] == $aRow->getStepUidObj() && $_GET['POSITION'] == $aRow->getStepPosition() && $_GET['ACTION'] == $action ? 'background-color:orange;color:white;padding-left:5px;padding-right:5px; ' : ''; $sOptions .= " " . $label . ""; } $sOptions .= '
'; $oAux =& $oNode->addChild($aRow->getStepUid() . '_node', $sOptions, array('nodeType'=>'child')); } $oAux->point = ''; } } $oNode =& $oTree->addChild('-1', '[ ' . G::LoadTranslation('ID_ASSIGN_TASK') . ' ]', array('nodeType'=>'parent')); $oNode->plus = ''; $oNode->minus = ''; /*$sOptions = ''; $sOptions .= ''; $sOptions .= '
' . G::LoadTranslation('ID_ASSIGN_SCREEN') . '
'; $oAux =& $oNode->addChild('-1_node', $sOptions, array('nodeType'=>'child')); $oAux->point = '';*/ echo $oTree->render();