added a new way to validate grids that they are assigned in some dynaforms

This commit is contained in:
Carlos Pacha
2011-01-03 22:23:09 +00:00
parent b6dd4b4a60
commit b9e642bcc8
2 changed files with 64 additions and 9 deletions

View File

@@ -386,17 +386,71 @@ class Step extends BaseStep {
* @param string $sproUid the uid of the process
* @param string $sObjUID the uid of the dynaform
*/
function loadInfoAssigDynaform($sproUid,$sObjUID){
$oCriteria = new Criteria('workflow');
$oCriteria->add(StepPeer::PRO_UID, $sproUid);
$oCriteria->add(StepPeer::STEP_UID_OBJ, $sObjUID);
$oCriteria->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM');
$oDataset = StepPeer::doSelectRS($oCriteria);
function loadInfoAssigDynaform($sproUid,$sObjUID){
require_once ( "classes/model/DynaformPeer.php" );
G::LoadSystem('dynaformhandler');
$oC = new Criteria('workflow');
$oC->add(DynaformPeer::DYN_UID, $sObjUID);
$oC->add(DynaformPeer::PRO_UID, $sproUid);
$oDataset = DynaformPeer::doSelectRS($oC);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
return($aRow);
if($aRow['DYN_TYPE']!='xmlform') {
$oC1 = new Criteria('workflow');
$oC1->add(DynaformPeer::PRO_UID, $sproUid);
$oC1->add(DynaformPeer::DYN_TYPE, "xmlform");
$oDataset = DynaformPeer::doSelectRS($oC1);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while($oDataset->next()){
$aRow1 = $oDataset->getRow();
//print_r($aRow1);
$dynHandler = new dynaFormHandler(PATH_DYNAFORM.$_POST['PRO_UID']."/".$aRow1['DYN_UID'].".xml");
$dynFields = $dynHandler->getFields();
$sxmlgrid = '';
$sType = '';
$check=0;
foreach($dynFields as $field){
$sType = $this->getAttribute($field, 'type');
if($sType == 'grid'){
$sxmlgrid = $this->getAttribute($field, 'xmlgrid');
$aGridInfo= explode("/",$sxmlgrid);
if($aGridInfo[0] == $sproUid && $aGridInfo[1] == $sObjUID){
$check=1;
}
}
}
}
return ($check==1)?$aGridInfo:'';
}else{
$oCriteria = new Criteria('workflow');
$oCriteria->add(StepPeer::PRO_UID, $sproUid);
$oCriteria->add(StepPeer::STEP_UID_OBJ, $sObjUID);
$oCriteria->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM');
$oDataset = StepPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
return($aRow);
}
die;
}
function getAttribute($node, $attName){
foreach ( $node->attributes as $attribute )
{
if ( $attribute->name == $attName )
{
return $attribute->value;
}
}
}
} // Step