Ejemplo n.º 1
0
 /**
  *
  * @param <type> $cw
  * @param <type> $options basic, basicOnly , noNominativeData , etat , order=recentFirst
  * @return <type>
  */
 public static function exportsGetTabCw($cw, $options = '')
 {
     //eko($cw);
     //eko($options);
     if (!$options || is_array($options) && count($options) == 0) {
         $options = array('noNominativeData' => true, 'etat' => array('I', 'E', 'F', 'H'));
     }
     if (!isset($options['etat'])) {
         $options = array_merge($options, array('etat' => array('I', 'E', 'F', 'H')));
     }
     $cw = "  ( {$cw} ) AND  status IN   ('" . implode("','", $options['etat']) . "') ";
     if (isset($options['order']) && $options['order'] == 'recentFirst') {
         $cw .= " ORDER BY id_instance DESC ";
     }
     if (isset($options['crossWithTable'])) {
         $baseFx = clFoRmXSession::getInstance()->getBase();
         $baseObjets = $options['crossWithTable']['base'];
         $tableObjets = $options['crossWithTable']['table'];
         $indexIds = $options['crossWithTable']['indexIds'];
         $requete = "SELECT id_instance ,idformx,ids , dt_creation, dt_modif, idformx, libelle, status, author FROM {$baseFx}.formx a ,{$baseObjets}.{$tableObjets} b WHERE a.ids = b.{$indexIds} AND {$cw} GROUP BY id_instance ";
     } else {
         $requete = "SELECT id_instance ,idformx,ids , dt_creation, dt_modif, idformx, libelle, status, author FROM formx WHERE {$cw} ";
     }
     $obRequete = clFoRmXSession::getInstance()->getObjRequete();
     $res = array();
     foreach ($obRequete->exec_requete($requete, 'tab') as $ligne) {
         //on veut les infos basiques du formulaire
         $tabBasic = array();
         if (isset($options['basic']) && $options['basic'] || isset($options['basicOnly']) && $options['basicOnly']) {
             $tabBasic['idInstance'] = $ligne['id_instance'];
             $tabBasic['ids'] = $ligne['ids'];
             $tabBasic['dtCreation'] = $ligne['dt_creation'];
             $tabBasic['dtModif'] = $ligne['dt_modif'];
             $tabBasic['idFormx'] = $ligne['idformx'];
             $tabBasic['libelle'] = $ligne['libelle'];
             $tabBasic['status'] = $ligne['status'];
             $tabBasic['author'] = $ligne['author'];
         }
         if (isset($options['basicOnly']) && $options['basicOnly']) {
             $res[] = $tabBasic;
             continue;
         }
         try {
             $formx = new clFoRmX($ligne['ids'], 'NO_POST_THREAT');
             $formx->loadInstance($ligne['id_instance']);
             $okForExtract = false;
             if (isset($options['filterValues'])) {
                 foreach ($options['filterValues'] as $idItem => $needValue) {
                     if ($formx->getFormVar($idItem) == $needValue) {
                         $okForExtract = true;
                     }
                 }
             } else {
                 $okForExtract = true;
             }
             if ($okForExtract) {
                 $resLigne = $tabBasic + $formx->getTabAllItemsValues($options);
                 $res[] = $resLigne;
             }
         } catch (Exception $e) {
         }
     }
     return $res;
 }