Example #1
0
 /**
  * Get all dynaform fields inside all grids from a process
  *
  * @param $proUid
  */
 public function _getGridFields($proUid)
 {
     require_once 'classes/model/Dynaform.php';
     G::loadSystem('dynaformhandler');
     $aFields = array();
     $aFieldsNames = array();
     $oCriteria = new Criteria('workflow');
     $oCriteria->addSelectColumn(DynaformPeer::DYN_FILENAME);
     $oCriteria->add(DynaformPeer::PRO_UID, $proUid);
     $oCriteria->add(DynaformPeer::DYN_TYPE, 'xmlform');
     $oDataset = DynaformPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     while ($aRow = $oDataset->getRow()) {
         //$G_FORM  = new Form($aRow['DYN_FILENAME'], PATH_DYNAFORM, SYS_LANG);
         $dynaformHandler = new dynaformHandler(PATH_DYNAFORM . $aRow['DYN_FILENAME'] . '.xml');
         $nodeFieldsList = $dynaformHandler->getFields();
         foreach ($nodeFieldsList as $node) {
             $arrayNode = $dynaformHandler->getArray($node);
             $fieldName = $arrayNode['__nodeName__'];
             $fieldType = $arrayNode['type'];
             if ($fieldType == 'grid') {
                 if (!in_array($fieldName, $aFieldsNames)) {
                     $aFields[] = array('name' => $fieldName, 'xmlform' => str_replace($proUid . '/', '', $arrayNode['xmlgrid']));
                     $aFieldsNames[] = $fieldName;
                 }
             }
         }
         $oDataset->next();
     }
     return $aFields;
 }
Example #2
0
 /**
  * Validate Report Table Grid
  * @var string $rep_tab_grid. Grid for report table
  * @var string $pro_uid. Uid for process
  *
  * @author Brayan Pereyra (Cochalo) <*****@*****.**>
  * @copyright Colosa - Bolivia
  *
  * @return string
  */
 public function validateRepGrid($rep_tab_grid, $pro_uid)
 {
     $rep_tab_grid = trim($rep_tab_grid);
     if ($rep_tab_grid == '') {
         throw new \Exception("The property rep_tab_grid: '{$rep_tab_grid}' is incorrect.");
     }
     G::loadSystem('dynaformhandler');
     $grids = array();
     $namesGrid = array();
     $aFieldsNames = array();
     $oCriteria = new \Criteria('workflow');
     $oCriteria->addSelectColumn(\DynaformPeer::DYN_FILENAME);
     $oCriteria->add(\DynaformPeer::PRO_UID, $pro_uid);
     $oCriteria->add(\DynaformPeer::DYN_TYPE, 'xmlform');
     $oDataset = \DynaformPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
     while ($oDataset->next()) {
         $aRow = $oDataset->getRow();
         $dynaformHandler = new \dynaformHandler(PATH_DYNAFORM . $aRow['DYN_FILENAME'] . '.xml');
         $nodeFieldsList = $dynaformHandler->getFields();
         foreach ($nodeFieldsList as $node) {
             $arrayNode = $dynaformHandler->getArray($node);
             $fieldName = $arrayNode['__nodeName__'];
             $fieldType = $arrayNode['type'];
             if ($fieldType == 'grid') {
                 if (!in_array($fieldName, $aFieldsNames)) {
                     $namesGrid[] = $fieldName;
                     $grids[] = str_replace($pro_uid . '/', '', $arrayNode['xmlgrid']);
                 }
             }
         }
     }
     $find = array_search($rep_tab_grid, $grids);
     if ($find === false) {
         throw new \Exception("The property rep_tab_grid: '{$rep_tab_grid}' is incorrect.");
     } else {
         $rep_tab_grid = $namesGrid[$find] . '-' . $rep_tab_grid;
     }
     return $rep_tab_grid;
 }