.
*
* 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 = '
';
$oAux =& $oNode->addChild($aRow->getStepUid() . '_node', $sOptions, array('nodeType'=>'child'));
break;
case 'OUTPUT_DOCUMENT':
$sOptions = '';
$oAux =& $oNode->addChild($aRow->getStepUid() . '_node', $sOptions, array('nodeType'=>'child'));
break;
case 'INPUT_DOCUMENT':
$sOptions = '';
$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 .= '';
}
$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 = '';
$oAux =& $oNode->addChild('-1_node', $sOptions, array('nodeType'=>'child'));
$oAux->point = '';*/
echo $oTree->render();