PageRenderTime 78ms CodeModel.GetById 3ms app.highlight 65ms RepoModel.GetById 1ms app.codeStats 1ms

/kernelActividades/application/libraries/Atajo.php

https://bitbucket.org/punketo28/sistema-de-control-de-actividades-del-poa
PHP | 1331 lines | 1248 code | 31 blank | 52 comment | 273 complexity | c9484fe435c298ece7ce6faf241dd9c1 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1<?php
   2if ( ! defined('BASEPATH')) exit('No se vista que no va xD');
   3/**
   4En esta clase se encuentran metodos que facilitan la vida para trabajar de forma integrada con el framework
   5php CodeIgniter y el framework jqGrid.   
   6*/
   7/**
   8*
   9* This program is free software: you can redistribute it and/or modify
  10* it under the terms of the GNU General Public License as published by
  11* the Free Software Foundation, either version 3 of the License, or
  12* any later version.
  13*
  14* This program is distributed in the hope that it will be useful,
  15* but WITHOUT ANY WARRANTY; without even the implied warranty of
  16* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17* GNU General Public License for more details.
  18*
  19 <http://www.gnu.org/licenses/>.
  20
  21*********************************************************************************
  22Este programa es software libre: usted puede redistribuirlo y / o modificar
  23* Bajo los términos de la GNU General Public License publicada por
  24* la Free Software Foundation, bien de la versión 3 de la Licencia, o
  25* cualquier versión posterior.
  26*
  27* Este programa se distribuye con la esperanza de que sea útil,
  28* pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de
  29* COMERCIALIZACIÓN o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
  30* Licencia Pública General GNU para más detalles.
  31<http://www.gnu.org/licenses/>.
  32 * 
  33* @author Manuel Alejandro Marquez Ortiz <punketo28@gmail.com>
  34 * A.K.A. @punketo28
  35* @date 2011/01/07
  36*/
  37
  38class Atajo
  39{  
  40  function __construct()
  41  {
  42    $this->CI = & get_instance();
  43  }
  44  
  45  /*Metodo copiado de los demos de jqGrid con algunas adaptaciones para validar que un dato introducido por
  46   el usuario sea integer, float o string si asi es requerido por la aplicacion.
  47  */
  48  function datoCompatible($dato, $tipo){
  49    // we need here more advanced checking using the type of the field - i.e. integer, string, float
  50    switch($tipo){
  51      case 'i':
  52			return intval($dato);//intval() Obtiene el valor entero de una variable
  53			break;
  54					case 'f':
  55			return floatval($dato);//floatval() Obtiene el valor flotante de una variable
  56			break;
  57					case 's':       
  58			return addslashes($dato); //addslashes() Añade barras invertidas a los caracteres ('),("),(\),(nul) que esten dentro de la cadena.
  59			break;
  60    }
  61  }
  62  //Metodo que me construye el Grid junto con el modulo de busqueda avanzada de jqGrid.
  63  function construyeData($sidx, $sord, $start, $limit, $searchFlag, $searchField, $searchString, $searchOper, $seleccion, $table, $where=null, $apuntadorSearchNM=null, $apuntadorSearchNM1=null, $apuntadorSearchNM2=null, $apuntadorSearchMM=null, $apuntadorSearchMM1=null, $apuntadorSearchMM2=null, $join=null, $distinct=null){
  64    $qopers = array(//Aqui se crea un array cuyos elementos son las opciones del array sopt.
  65      'ne'=>" != ",
  66      'lt'=>" < ",
  67      'le'=>" <= ",
  68      'gt'=>" > ",
  69      'ge'=>" >= ",
  70      'bw'=>" LIKE ",
  71      'bn'=>" NOT LIKE ",
  72      'ew'=>" LIKE ",
  73      'en'=>" NOT LIKE ",
  74      'cn'=>" LIKE " ,
  75      'nc'=>" NOT LIKE "
  76    );
  77    $flag = 0;            
  78    if ($searchFlag == 'true'){
  79      if($searchString && $searchOper){	        		      	
  80	if (!is_null($apuntadorSearchNM)){
  81          $countApuntadorNM   = count($apuntadorSearchNM);
  82	  if($countApuntadorNM > 1){
  83	    for($i=0; $i<$countApuntadorNM; $i++){
  84	      if ($searchField == $apuntadorSearchNM[$i]['campo']){
  85		$query = $this->CI->db->select($apuntadorSearchNM[$i]['campo11'])->where($apuntadorSearchNM[$i]['campo12'], $searchString)->get($apuntadorSearchNM[$i]['tabla1']);
  86		if($query->num_rows() > 0){
  87		  foreach ($query->result() as $fila){
  88		    $searchString2 = $fila->$apuntadorSearchNM[$i]['campo11'];
  89		  }
  90		}
  91		$this->CI->db->select($apuntadorSearchNM[$i]['campo12']);
  92		$searchField 	= $apuntadorSearchNM[$i]['campo11'];
  93		$flag 		= 1;
  94		$searchField2 	= $apuntadorSearchNM[$i]['campo12'];
  95		$tabla1 	= $apuntadorSearchNM[$i]['tabla1'];
  96		$fkey 		= $apuntadorSearchNM[$i]['campo'];		
  97	      } 	    	    
  98	    }	  
  99	  }
 100	  else{
 101	    if ($searchField == $apuntadorSearchNM[0]['campo']){
 102	      $query = $this->CI->db->select($apuntadorSearchNM[0]['campo11'])->where($apuntadorSearchNM[0]['campo12'], $searchString)->get($apuntadorSearchNM[0]['tabla1']);
 103	      if($query->num_rows() > 0){
 104		foreach ($query->result() as $fila){
 105		  $searchString2 = $fila->$apuntadorSearchNM[0]['campo11'];
 106		}
 107	      }
 108	      $this->CI->db->select($apuntadorSearchNM[0]['campo12']);
 109	      $searchField 	= $apuntadorSearchNM[0]['campo11'];
 110	      $flag 		= 1;
 111	      $searchField2 	= $apuntadorSearchNM[0]['campo12'];
 112	      $tabla1 		= $apuntadorSearchNM[0]['tabla1'];
 113	      $fkey 		= $apuntadorSearchNM[0]['campo'];		
 114	    }
 115	  }
 116	}
 117	/*$apuntadorSearchNM1 = array(
 118			    array('campo' => 'municipio', 'campo11' => 'descripcion', 'campo12' => 'id', 'tabla1' => 'municipio', 'campo21' => 'id', 'campo22' => 'id_municipio', 'tabla2' => 'parroquia', 'campo31' => 'id_parroquia')			    			    
 119		      );
 120	*/
 121        if (!is_null($apuntadorSearchNM1)){
 122          $countApuntadorNM1  = count($apuntadorSearchNM1);
 123	  if($countApuntadorNM1 > 1){
 124	    for($i=0; $i<$countApuntadorNM1; $i++){
 125	      if ($searchField == $apuntadorSearchNM1[$i]['campo']){
 126		$query = $this->CI->db->select($apuntadorSearchNM1[$i]['campo11'])->where($apuntadorSearchNM1[$i]['campo12'], $searchString)->get($apuntadorSearchNM1[$i]['tabla1']);
 127		if($query->num_rows() > 0){
 128		  foreach ($query->result() as $fila){
 129		    $searchString2 = $fila->$apuntadorSearchNM1[$i]['campo11'];
 130		  }
 131		}
 132		$this->CI->db->select($apuntadorSearchNM1[$i]['campo12']);
 133                $searchField 	= $apuntadorSearchNM1[$i]['campo11'];
 134                $flag 		= 2;
 135                $searchField2 	= $apuntadorSearchNM1[$i]['campo12'];
 136                $tabla1         = $apuntadorSearchNM1[$i]['tabla1'];
 137                $campo21        = $apuntadorSearchNM1[$i]['campo21'];
 138                $campo22        = $apuntadorSearchNM1[$i]['campo22'];
 139                $tabla2         = $apuntadorSearchNM1[$i]['tabla2'];  
 140                $fkey 		= $apuntadorSearchNM1[$i]['campo31'];		
 141	      } 	    	    
 142	    }
 143	  }
 144	  else{
 145	    if ($searchField == $apuntadorSearchNM1[0]['campo']){
 146		$query = $this->CI->db->select($apuntadorSearchNM1[0]['campo11'])->where($apuntadorSearchNM1[0]['campo12'], $searchString)->get($apuntadorSearchNM1[0]['tabla1']);
 147		if($query->num_rows() > 0){
 148		  foreach ($query->result() as $fila){
 149		    $searchString2 = $fila->$apuntadorSearchNM1[0]['campo11'];
 150		  }
 151		}
 152		$this->CI->db->select($apuntadorSearchNM1[0]['campo12']);
 153                $searchField 	= $apuntadorSearchNM1[0]['campo11'];
 154                $flag 		= 2;
 155                $searchField2 	= $apuntadorSearchNM1[0]['campo12'];
 156                $tabla1         = $apuntadorSearchNM1[0]['tabla1'];
 157                $campo21        = $apuntadorSearchNM1[0]['campo21'];
 158                $campo22        = $apuntadorSearchNM1[0]['campo22'];
 159                $tabla2         = $apuntadorSearchNM1[0]['tabla2'];  
 160                $fkey 		= $apuntadorSearchNM1[0]['campo31'];		
 161	    }
 162	  }
 163	}
 164	
 165	/*$apuntadorSearchNM2 = array(
 166			    array('campo' => 'eje', 'campo11' => 'descripcion', 'campo12' => 'id', 'tabla1' => 'eje', 'campo21' => 'id', 'campo22' => 'id_eje', 'tabla2' => 'municipio', 'campo31' => 'id', 'campo32' => 'id_municipio', 'tabla3' => 'parroquia', 'campo41' => 'id_parroquia')			    			    
 167		      );*/
 168	if (!is_null($apuntadorSearchNM2)){
 169          $countApuntadorNM2  = count($apuntadorSearchNM2);
 170	  if($countApuntadorNM2 > 1){
 171	    for($i=0; $i<$countApuntadorNM2; $i++){
 172	      if ($searchField == $apuntadorSearchNM2[$i]['campo']){
 173		$query = $this->CI->db->select($apuntadorSearchNM2[$i]['campo11'])->where($apuntadorSearchNM2[$i]['campo12'], $searchString)->get($apuntadorSearchNM2[$i]['tabla1']);
 174		if($query->num_rows() > 0){
 175		  foreach ($query->result() as $fila){
 176		    $searchString2 = $fila->$apuntadorSearchNM2[$i]['campo11'];
 177		  }
 178		}
 179		$this->CI->db->select($apuntadorSearchNM2[$i]['campo12']);
 180                $searchField 	= $apuntadorSearchNM2[$i]['campo11'];
 181                $flag 		= 3;
 182                $searchField2 	= $apuntadorSearchNM2[$i]['campo12'];
 183                $tabla1         = $apuntadorSearchNM2[$i]['tabla1'];
 184                $campo21        = $apuntadorSearchNM2[$i]['campo21'];
 185                $campo22        = $apuntadorSearchNM2[$i]['campo22'];
 186                $tabla2         = $apuntadorSearchNM2[$i]['tabla2'];
 187		$campo31 	= $apuntadorSearchNM2[$i]['campo31'];
 188		$campo32 	= $apuntadorSearchNM2[$i]['campo32'];
 189		$tabla3 	= $apuntadorSearchNM2[$i]['tabla3'];
 190                $fkey 		= $apuntadorSearchNM2[$i]['campo41'];	
 191	      } 	    	    
 192	    }
 193	  }
 194	  else{
 195	    if ($searchField == $apuntadorSearchNM2[0]['campo']){
 196		$query = $this->CI->db->select($apuntadorSearchNM2[0]['campo11'])->where($apuntadorSearchNM2[0]['campo12'], $searchString)->get($apuntadorSearchNM2[0]['tabla1']);
 197		if($query->num_rows() > 0){
 198		  foreach ($query->result() as $fila){
 199		    $searchString2 = $fila->$apuntadorSearchNM2[0]['campo11'];
 200		  }
 201		}
 202		$this->CI->db->select($apuntadorSearchNM2[0]['campo12']);
 203                $searchField 	= $apuntadorSearchNM2[0]['campo11'];
 204                $flag 		= 3;
 205                $searchField2 	= $apuntadorSearchNM2[0]['campo12'];
 206                $tabla1         = $apuntadorSearchNM2[0]['tabla1'];
 207                $campo21        = $apuntadorSearchNM2[0]['campo21'];
 208                $campo22        = $apuntadorSearchNM2[0]['campo22'];
 209                $tabla2         = $apuntadorSearchNM2[0]['tabla2'];
 210		$campo31 	= $apuntadorSearchNM2[0]['campo31'];
 211		$campo32 	= $apuntadorSearchNM2[0]['campo32'];
 212		$tabla3 	= $apuntadorSearchNM2[0]['tabla3'];
 213                $fkey 		= $apuntadorSearchNM2[0]['campo41'];		
 214	      }
 215	  }
 216	}
 217	
 218	if (!is_null($apuntadorSearchMM)){
 219          $countApuntadorMM   = count($apuntadorSearchMM);
 220	  if($countApuntadorMM > 1){
 221	    for($i=0; $i<$countApuntadorMM; $i++){
 222	      if ($searchField == $apuntadorSearchMM[$i]['campo']){
 223		$query = $this->CI->db->select($apuntadorSearchMM[$i]['campo11'])->where($apuntadorSearchMM[$i]['campo12'], $searchString)->get($apuntadorSearchMM[$i]['tabla1']);
 224		if($query->num_rows() > 0){
 225		  foreach ($query->result() as $fila){
 226		    $searchString2 = $fila->$apuntadorSearchMM[$i]['campo11'];
 227		  }
 228		}
 229		$this->CI->db->select($apuntadorSearchMM[$i]['campo12']);
 230		$searchField 	= $apuntadorSearchMM[$i]['campo11'];
 231		$flag 		= 4;
 232		$searchField2 	= $apuntadorSearchMM[$i]['campo12'];
 233		$tabla1 	= $apuntadorSearchMM[$i]['tabla1'];
 234		$campo21 	= $apuntadorSearchMM[$i]['campo21'];
 235		$campo22 	= $apuntadorSearchMM[$i]['campo22'];
 236		$tabla2 	= $apuntadorSearchMM[$i]['tabla2'];
 237		$campo31 	= $apuntadorSearchMM[$i]['campo31'];
 238	      } 	    	    
 239	    }	  
 240	  }
 241	  else{
 242	    if($searchField == $apuntadorSearchMM[0]['campo']){
 243	      $query = $this->CI->db->select($apuntadorSearchMM[0]['campo11'])->where($apuntadorSearchMM[0]['campo12'], $searchString)->get($apuntadorSearchMM[0]['tabla1']);
 244	      if($query->num_rows() > 0){
 245		foreach ($query->result() as $fila){
 246		  $searchString2 = $fila->$apuntadorSearchMM[0]['campo11'];
 247		}
 248	      }
 249	      $this->CI->db->select($apuntadorSearchMM[0]['campo12']);
 250	      $searchField 	= $apuntadorSearchMM[0]['campo11'];
 251	      $flag 		= 4;
 252	      $searchField2 	= $apuntadorSearchMM[0]['campo12'];
 253	      $tabla1 		= $apuntadorSearchMM[0]['tabla1'];
 254	      $campo21 		= $apuntadorSearchMM[0]['campo21'];
 255	      $campo22 		= $apuntadorSearchMM[0]['campo22'];
 256	      $tabla2 		= $apuntadorSearchMM[0]['tabla2'];
 257	      $campo31 		= $apuntadorSearchMM[0]['campo31'];
 258	    }  
 259	  }	  
 260	}
 261	
 262	if (!is_null($apuntadorSearchMM1)){
 263          $countApuntadorMM1  = count($apuntadorSearchMM1);
 264	  if($countApuntadorMM1 > 1){
 265	    for($i=0; $i<$countApuntadorMM1; $i++){
 266	      if ($searchField == $apuntadorSearchMM1[$i]['campo']){
 267		$query = $this->CI->db->select($apuntadorSearchMM1[$i]['campo11'])->where($apuntadorSearchMM1[$i]['campo12'], $searchString)->get($apuntadorSearchMM1[$i]['tabla1']);
 268		if($query->num_rows() > 0){
 269		  foreach ($query->result() as $fila){
 270		    $searchString2 = $fila->$apuntadorSearchMM1[$i]['campo11'];
 271		  }
 272		}
 273		$this->CI->db->select($apuntadorSearchMM1[$i]['campo12']);
 274		$searchField	= $apuntadorSearchMM1[$i]['campo11'];
 275		$flag 		= 5;
 276		$searchField2 	= $apuntadorSearchMM1[$i]['campo12'];
 277		$tabla1 	= $apuntadorSearchMM1[$i]['tabla1'];
 278		$campo21 	= $apuntadorSearchMM1[$i]['campo21'];
 279		$campo22 	= $apuntadorSearchMM1[$i]['campo22'];
 280		$tabla2 	= $apuntadorSearchMM1[$i]['tabla2'];
 281		$campo31 	= $apuntadorSearchMM1[$i]['campo31'];
 282		$campo32 	= $apuntadorSearchMM1[$i]['campo32'];
 283		$tabla3 	= $apuntadorSearchMM1[$i]['tabla3'];
 284		$campo41	= $apuntadorSearchMM1[$i]['campo41'];
 285	      }  
 286	    }
 287	  }
 288	  else{	    
 289	    if ($searchField == $apuntadorSearchMM1[0]['campo']){
 290	      $query = $this->CI->db->select($apuntadorSearchMM1[0]['campo11'])->where($apuntadorSearchMM1[0]['campo12'], $searchString)->get($apuntadorSearchMM1[0]['tabla1']);
 291	      if($query->num_rows() > 0){
 292		foreach ($query->result() as $fila){
 293		  $searchString2 = $fila->$apuntadorSearchMM1[0]['campo11'];
 294		}
 295	      }
 296	      $this->CI->db->select($apuntadorSearchMM1[0]['campo12']);
 297	      $searchField	= $apuntadorSearchMM1[0]['campo11'];
 298	      $flag 		= 5;
 299	      $searchField2 	= $apuntadorSearchMM1[0]['campo12'];
 300	      $tabla1 		= $apuntadorSearchMM1[0]['tabla1'];
 301	      $campo21 		= $apuntadorSearchMM1[0]['campo21'];
 302	      $campo22 		= $apuntadorSearchMM1[0]['campo22'];
 303	      $tabla2 		= $apuntadorSearchMM1[0]['tabla2'];
 304	      $campo31 		= $apuntadorSearchMM1[0]['campo31'];
 305	      $campo32 		= $apuntadorSearchMM1[0]['campo32'];
 306	      $tabla3 		= $apuntadorSearchMM1[0]['tabla3'];
 307	      $campo41		= $apuntadorSearchMM1[0]['campo41'];
 308	    }  	    
 309	  }
 310	}
 311	if (!is_null($apuntadorSearchMM2)){
 312          $countApuntadorMM2  = count($apuntadorSearchMM2);
 313	  if($countApuntadorMM2 > 1){
 314	    for($i=0; $i<$countApuntadorMM2; $i++){
 315	      if ($searchField == $apuntadorSearchMM2[$i]['campo']){
 316	      $query = $this->CI->db->select($apuntadorSearchMM2[$i]['campo11'])->where($apuntadorSearchMM2[$i]['campo12'], $searchString)->get($apuntadorSearchMM2[$i]['tabla1']);
 317	      if($query->num_rows() > 0){
 318		foreach ($query->result() as $fila){
 319		  $searchString2 = $fila->$apuntadorSearchMM2[$i]['campo11'];
 320		}
 321	      }
 322	      $this->CI->db->select($apuntadorSearchMM2[$i]['campo12']);
 323	      $searchField	= $apuntadorSearchMM2[$i]['campo11'];
 324	      $flag 		= 6;
 325	      $searchField2 	= $apuntadorSearchMM2[$i]['campo12'];
 326	      $tabla1 		= $apuntadorSearchMM2[$i]['tabla1'];
 327	      $campo21 		= $apuntadorSearchMM2[$i]['campo21'];
 328	      $campo22 		= $apuntadorSearchMM2[$i]['campo22'];
 329	      $tabla2 		= $apuntadorSearchMM2[$i]['tabla2'];
 330	      $campo31 		= $apuntadorSearchMM2[$i]['campo31'];
 331	      $campo32 		= $apuntadorSearchMM2[$i]['campo32'];
 332	      $tabla3 		= $apuntadorSearchMM2[$i]['tabla3'];
 333	      $campo41		= $apuntadorSearchMM2[$i]['campo41'];
 334	      $campo42		= $apuntadorSearchMM2[$i]['campo42'];
 335	      $tabla4 		= $apuntadorSearchMM2[$i]['tabla4'];
 336	      $campo51		= $apuntadorSearchMM2[$i]['campo51'];
 337	    }  
 338	    }
 339	  }
 340	  else{	    
 341	    if ($searchField == $apuntadorSearchMM2[0]['campo']){
 342	      $query = $this->CI->db->select($apuntadorSearchMM2[0]['campo11'])->where($apuntadorSearchMM2[0]['campo12'], $searchString)->get($apuntadorSearchMM2[0]['tabla1']);
 343	      if($query->num_rows() > 0){
 344		foreach ($query->result() as $fila){
 345		  $searchString2 = $fila->$apuntadorSearchMM2[0]['campo11'];
 346		}
 347	      }
 348	      $this->CI->db->select($apuntadorSearchMM2[0]['campo12']);
 349	      $searchField	= $apuntadorSearchMM2[0]['campo11'];
 350	      $flag 		= 6;
 351	      $searchField2 	= $apuntadorSearchMM2[0]['campo12'];
 352	      $tabla1 		= $apuntadorSearchMM2[0]['tabla1'];
 353	      $campo21 		= $apuntadorSearchMM2[0]['campo21'];
 354	      $campo22 		= $apuntadorSearchMM2[0]['campo22'];
 355	      $tabla2 		= $apuntadorSearchMM2[0]['tabla2'];
 356	      $campo31 		= $apuntadorSearchMM2[0]['campo31'];
 357	      $campo32 		= $apuntadorSearchMM2[0]['campo32'];
 358	      $tabla3 		= $apuntadorSearchMM2[0]['tabla3'];
 359	      $campo41		= $apuntadorSearchMM2[0]['campo41'];
 360	      $campo42		= $apuntadorSearchMM2[0]['campo42'];
 361	      $tabla4 		= $apuntadorSearchMM2[0]['tabla4'];
 362	      $campo51		= $apuntadorSearchMM2[0]['campo51'];
 363	    }  	    
 364	  }
 365	}
 366	
 367        switch ($searchOper){                    	   
 368	  case "eq":
 369	    if($flag != 0)
 370	      $searchField = $searchField2;	    
 371	    $this->CI->db->where($searchField, $searchString);
 372	    break;
 373	  case "ne":
 374	    if($flag != 0)
 375	      $searchField = $searchField2;
 376	    $this->CI->db->where($searchField.$qopers['ne'], $searchString);
 377	    break;           
 378	  case "lt":
 379	    if($flag != 0)
 380	      $searchString = $searchString2;
 381	    $this->CI->db->where($searchField.$qopers['lt'], $searchString);
 382	    break;                              
 383	  case "le":
 384	    if($flag != 0)
 385	      $searchString = $searchString2;
 386	    $this->CI->db->where($searchField.$qopers['le'], $searchString);
 387	    break;                              
 388	  case "gt":
 389	    if($flag != 0)
 390	      $searchString = $searchString2;
 391	    $this->CI->db->where($searchField.$qopers['gt'], $searchString);
 392	    break;                              
 393	  case "ge":
 394	    if($flag != 0)
 395	      $searchString = $searchString2;
 396	    $this->CI->db->where($searchField.$qopers['ge'], $searchString);
 397	    break;           
 398	  case "bw":
 399	    if($flag != 0)
 400	      $searchString = $searchString2;
 401	    $value = strtolower($searchString);         
 402	    $this->CI->db->where($searchField.$qopers['bw'], $value.'%');
 403            if(!empty($where) && $flag == 0)
 404              $this->CI->db->where($where[0], $where[1]);
 405            $this->CI->db->or_where($searchField.$qopers['bw'], strtoupper($value).'%');
 406            if(!empty($where) && $flag == 0)
 407              $this->CI->db->where($where[0], $where[1]);
 408	    $this->CI->db->or_where($searchField.$qopers['bw'], ucfirst($value).'%');
 409            if(!empty($where) && $flag == 0)
 410              $this->CI->db->where($where[0], $where[1]);
 411            $this->CI->db->or_where($searchField.$qopers['bw'], ucwords($value).'%');
 412            if(!empty($where) && $flag == 0)
 413              $this->CI->db->where($where[0], $where[1]);
 414	    break;
 415	  case "bn":
 416	    if($flag != 0)
 417	      $searchString = $searchString2;
 418	    $this->CI->db->where($searchField.$qopers['bn'], $searchString.'%');                     
 419	    break;
 420	  case "in":
 421	    if($flag != 0)
 422	      $searchField = $searchField2;
 423	    $valuesArray = explode(",", $searchString);
 424	    foreach ($valuesArray as $key => $valor){
 425	      $valores[] = trim($valor);
 426	    }
 427	    foreach ($valores as $key2 => $valor2){
 428	      $minusculas[] = strtolower($valor2);					 			
 429	    }
 430	    foreach ($valores as $key3 => $valor3){
 431	    $mayusculas[] = strtoupper($valor3);					 			
 432	    }
 433	    foreach ($valores as $key4 => $valor4){
 434	    $ucfirst[] = ucfirst($valor4);					 			
 435	    }
 436	    foreach ($valores as $key5 => $valor5){
 437	    $ucwords[] = ucwords($valor5);					 			
 438	    }					 					                    
 439	    $this->CI->db->where_in($searchField, $valores);
 440            if(!empty($where) && $flag == 0)
 441              $this->CI->db->where($where[0], $where[1]);
 442	    $this->CI->db->or_where_in($searchField, $minusculas);
 443            if(!empty($where) && $flag == 0)
 444              $this->CI->db->where($where[0], $where[1]);
 445	    $this->CI->db->or_where_in($searchField, $mayusculas);
 446            if(!empty($where) && $flag == 0)
 447              $this->CI->db->where($where[0], $where[1]);
 448	    $this->CI->db->or_where_in($searchField, $ucfirst);
 449            if(!empty($where) && $flag == 0)
 450              $this->CI->db->where($where[0], $where[1]);
 451	    $this->CI->db->or_where_in($searchField, $ucwords);
 452            if(!empty($where) && $flag == 0)
 453              $this->CI->db->where($where[0], $where[1]);
 454	    break; 
 455	  case "ni":
 456	    if($flag != 0)
 457	      $searchField = $searchField2;
 458	    $valuesArray = explode(",", $searchString);
 459            foreach ($valuesArray as $key => $valor){
 460	      $valores[] = trim($valor);
 461	    }            					 					                
 462	    $this->CI->db->where_not_in($searchField, $valores);
 463            if(!empty($where) && $flag == 0)
 464              $this->CI->db->where($where[0], $where[1]);            
 465	    break;          
 466	  case "ew":
 467	    if($flag != 0)
 468	      $searchString = $searchString2;
 469	    $value = strtolower($searchString);         
 470	    $this->CI->db->where($searchField.$qopers['ew'], '%'.$value);
 471            if(!empty($where) && $flag == 0)
 472              $this->CI->db->where($where[0], $where[1]);
 473            $this->CI->db->or_where($searchField.$qopers['ew'], '%'.strtoupper($value));
 474            if(!empty($where) && $flag == 0)
 475              $this->CI->db->where($where[0], $where[1]);
 476	    $this->CI->db->or_where($searchField.$qopers['ew'], '%'.ucfirst($value));
 477            if(!empty($where) && $flag == 0)
 478              $this->CI->db->where($where[0], $where[1]);
 479            $this->CI->db->or_where($searchField.$qopers['ew'], '%'.ucwords($value));
 480            if(!empty($where) && $flag == 0)
 481              $this->CI->db->where($where[0], $where[1]);
 482	    break;
 483	  case "en":
 484	    if($flag != 0)
 485	      $searchString = $searchString2;
 486	    $this->CI->db->where($searchField.$qopers['en'], '%'.$searchString);
 487	    break;
 488	  case "cn":
 489	    if($flag != 0)
 490	      $searchString = $searchString2;
 491	    $value = strtolower($searchString);
 492	    $this->CI->db->where($searchField.$qopers['cn'], '%'.$value);
 493            if(!empty($where) && $flag == 0)
 494              $this->CI->db->where($where[0], $where[1]);
 495            $this->CI->db->or_where($searchField.$qopers['cn'], '%'.strtoupper($value));
 496            if(!empty($where) && $flag == 0)
 497              $this->CI->db->where($where[0], $where[1]);
 498	    $this->CI->db->or_where($searchField.$qopers['cn'], '%'.ucfirst($value));
 499            if(!empty($where) && $flag == 0)
 500              $this->CI->db->where($where[0], $where[1]);
 501            $this->CI->db->or_where($searchField.$qopers['cn'], '%'.ucwords($value));
 502            if(!empty($where) && $flag == 0)
 503              $this->CI->db->where($where[0], $where[1]);
 504	    $this->CI->db->or_where($searchField.$qopers['cn'], $value.'%');
 505            if(!empty($where) && $flag == 0)
 506              $this->CI->db->where($where[0], $where[1]);
 507            $this->CI->db->or_where($searchField.$qopers['cn'], strtoupper($value).'%');
 508            if(!empty($where) && $flag == 0)
 509              $this->CI->db->where($where[0], $where[1]);
 510	    $this->CI->db->or_where($searchField.$qopers['cn'], ucfirst($value).'%');
 511            if(!empty($where) && $flag == 0)
 512              $this->CI->db->where($where[0], $where[1]);
 513            $this->CI->db->or_where($searchField.$qopers['cn'], ucwords($value).'%');
 514            if(!empty($where) && $flag == 0)
 515              $this->CI->db->where($where[0], $where[1]);
 516	    $this->CI->db->or_where($searchField.$qopers['cn'], '%'.$value.'%');
 517            if(!empty($where) && $flag == 0)
 518              $this->CI->db->where($where[0], $where[1]);
 519            $this->CI->db->or_where($searchField.$qopers['cn'], '%'.strtoupper($value).'%');
 520            if(!empty($where) && $flag == 0)
 521              $this->CI->db->where($where[0], $where[1]);
 522	    $this->CI->db->or_where($searchField.$qopers['cn'], '%'.ucfirst($value).'%');
 523            if(!empty($where) && $flag == 0)
 524              $this->CI->db->where($where[0], $where[1]);
 525            $this->CI->db->or_where($searchField.$qopers['cn'], '%'.ucwords($value).'%');
 526            if(!empty($where) && $flag == 0)
 527              $this->CI->db->where($where[0], $where[1]);
 528	    break;
 529	  case "nc":
 530	    if($flag != 0)
 531	      $searchString = $searchString2;
 532	    $this->CI->db->where($searchField.$qopers['nc'], '%'.$searchString.'%');                     
 533	    break;        
 534	}                       
 535      }
 536    }
 537    switch($flag){
 538      case 1:
 539	$query = $this->CI->db->get($tabla1);
 540	if($query->num_rows() > 0){
 541	  foreach ($query->result() as $fila){
 542	    $ids[] = $fila->$searchField2;
 543	  }	  
 544	  $this->CI->db->select($seleccion);
 545	  $countIds = count($ids);
 546	  $idsModificado = array_slice($ids, 1, $countIds-1);
 547	  $this->CI->db->where($fkey, $ids[0]);
 548          if(!empty($where))
 549            $this->CI->db->where($where[0], $where[1]);
 550	  foreach($idsModificado as $key => $value){
 551	    $this->CI->db->or_where($fkey, $value);
 552            if(!empty($where))
 553              $this->CI->db->where($where[0], $where[1]);
 554	  }	  
 555	}
 556        else return array();
 557	break;
 558      
 559      case 2:
 560        $query = $this->CI->db->get($tabla1);
 561	if($query->num_rows() > 0){
 562	  foreach ($query->result() as $fila){
 563	    $ids[] = $fila->$searchField2;
 564	  }
 565          $this->CI->db->select($campo21);
 566          $countIds = count($ids);
 567          $idsModificado = array_slice($ids, 1, $countIds-1);
 568          $this->CI->db->where($campo22, $ids[0]);
 569          foreach($idsModificado as $key => $value){
 570	    $this->CI->db->or_where($campo22, $value);
 571	  }
 572          $query2 = $this->CI->db->get($tabla2);
 573          if($query2->num_rows() > 0){
 574            foreach ($query2->result() as $fila){
 575              $ids2[] = $fila->$campo21;
 576            }
 577            $this->CI->db->select($seleccion);
 578            $countIds2 = count($ids2);
 579            $ids2Modificado = array_slice($ids2, 1, $countIds2-1);
 580            $this->CI->db->where($fkey, $ids2[0]);
 581            if(!empty($where))
 582              $this->CI->db->where($where[0], $where[1]);
 583            foreach($ids2Modificado as $key => $value){
 584              $this->CI->db->or_where($fkey, $value);
 585              if(!empty($where))
 586                $this->CI->db->where($where[0], $where[1]);
 587            }
 588          }  	  	  
 589	}
 590        else return array();
 591        break;      
 592      
 593      case 3:
 594        $query = $this->CI->db->get($tabla1);
 595	if($query->num_rows() > 0){
 596	  foreach ($query->result() as $fila){
 597	    $ids[] = $fila->$searchField2;
 598	  }
 599          $this->CI->db->select($campo21);
 600          $countIds = count($ids);
 601          $idsModificado = array_slice($ids, 1, $countIds-1);
 602          $this->CI->db->where($campo22, $ids[0]);
 603          foreach($idsModificado as $key => $value){
 604	    $this->CI->db->or_where($campo22, $value);
 605	  }
 606          $query2 = $this->CI->db->get($tabla2);
 607          if($query2->num_rows() > 0){
 608            foreach ($query2->result() as $fila){
 609              $ids2[] = $fila->$campo21;
 610            }
 611	    $this->CI->db->select($campo31);
 612	    $countIds2 = count($ids2);
 613	    $ids2Modificado = array_slice($ids2, 1, $countIds2-1);
 614	    $this->CI->db->where($campo32, $ids2[0]);
 615	    foreach($ids2Modificado as $key => $value){
 616	      $this->CI->db->or_where($campo32, $value);
 617	    }
 618	    $query3 = $this->CI->db->get($tabla3);
 619	    if($query3->num_rows() > 0){
 620	      foreach ($query3->result() as $fila){
 621		$ids3[] = $fila->$campo31;
 622	      }
 623	      $this->CI->db->select($seleccion);
 624	      $countIds3 = count($ids3);
 625	      $ids3Modificado = array_slice($ids3, 1, $countIds3-1);
 626	      $this->CI->db->where($fkey, $ids3[0]);
 627              if(!empty($where))
 628                $this->CI->db->where($where[0], $where[1]);
 629	      foreach($ids3Modificado as $key => $value){
 630		$this->CI->db->or_where($fkey, $value);
 631                if(!empty($where))
 632                  $this->CI->db->where($where[0], $where[1]);
 633	      }
 634	    }
 635          }  	  	  
 636	}
 637        else return array();
 638        break;      
 639      
 640      case 4:
 641	$query = $this->CI->db->get($tabla1);
 642	if($query->num_rows() > 0){
 643	  foreach ($query->result() as $fila){
 644	    $ids[] = $fila->$searchField2;
 645	  }
 646	  $this->CI->db->select($campo21);
 647	  $countIds = count($ids);
 648	  $idsModificado = array_slice($ids, 1, $countIds-1);
 649	  $this->CI->db->where($campo22, $ids[0]);
 650	  foreach($idsModificado as $key => $value){
 651	    $this->CI->db->or_where($campo22, $value);
 652	  }
 653	  $query2 = $this->CI->db->get($tabla2);
 654	  if($query2->num_rows() > 0){
 655	    foreach ($query2->result() as $fila){
 656	      $ids2[] = $fila->$campo21;
 657	    }            
 658	    $this->CI->db->select($seleccion);
 659	    $countIds2 = count($ids2);
 660	    $ids2Modificado = array_slice($ids2, 1, $countIds2-1);
 661	    $this->CI->db->where($campo31, $ids2[0]);
 662            if(!empty($where))
 663              $this->CI->db->where($where[0], $where[1]);
 664	    foreach($ids2Modificado as $key => $value){
 665	      $this->CI->db->or_where($campo31, $value);
 666              if(!empty($where))
 667                $this->CI->db->where($where[0], $where[1]);
 668	    }
 669	  }
 670          else
 671            return array();
 672	}	  
 673	break;      
 674      
 675      case 5:
 676	$query = $this->CI->db->get($tabla1);
 677	if($query->num_rows() > 0){
 678	  foreach ($query->result() as $fila){
 679	    $ids[] = $fila->$searchField2;
 680	  }
 681	  $this->CI->db->select($campo21);
 682	  $countIds = count($ids);
 683	  $idsModificado = array_slice($ids, 1, $countIds-1);
 684	  $this->CI->db->where($campo22, $ids[0]);
 685	  foreach($idsModificado as $key => $value){
 686	    $this->CI->db->or_where($campo22, $value);
 687	  }
 688	  $query2 = $this->CI->db->get($tabla2);
 689	  if($query2->num_rows() > 0){
 690	    foreach ($query2->result() as $fila){
 691	      $ids2[] = $fila->$campo21;
 692	    }
 693	    $this->CI->db->select($campo31);
 694	    $countIds2 = count($ids2);
 695	    $ids2Modificado = array_slice($ids2, 1, $countIds2-1);
 696	    $this->CI->db->where($campo32, $ids2[0]);
 697	    foreach($ids2Modificado as $key => $value){
 698	      $this->CI->db->or_where($campo32, $value);
 699	    }
 700	    $query3 = $this->CI->db->get($tabla3);
 701	    if($query3->num_rows() > 0){
 702	      foreach ($query3->result() as $fila){
 703		$ids3[] = $fila->$campo31;
 704	      }
 705	      $this->CI->db->select($seleccion);
 706	      $countIds3 = count($ids3);
 707	      $ids3Modificado = array_slice($ids3, 1, $countIds3-1);
 708	      $this->CI->db->where($campo41, $ids3[0]);
 709              if(!empty($where))
 710                $this->CI->db->where($where[0], $where[1]);
 711	      foreach($ids3Modificado as $key => $value){
 712		$this->CI->db->or_where($campo41, $value);
 713                if(!empty($where))
 714                  $this->CI->db->where($where[0], $where[1]);
 715	      }
 716	    }	    
 717	  }
 718	}
 719        else
 720	      return array();		      
 721	break;
 722      
 723      case 6:
 724	$query = $this->CI->db->get($tabla1);
 725	if($query->num_rows() > 0){
 726	  foreach ($query->result() as $fila){
 727	    $ids[] = $fila->$searchField2;
 728	  }
 729	  $this->CI->db->select($campo21);
 730	  $countIds = count($ids);
 731	  $idsModificado = array_slice($ids, 1, $countIds-1);
 732	  $this->CI->db->where($campo22, $ids[0]);
 733	  foreach($idsModificado as $key => $value){
 734	    $this->CI->db->or_where($campo22, $value);
 735	  }
 736	  $query2 = $this->CI->db->get($tabla2);
 737	  if($query2->num_rows() > 0){
 738	    foreach ($query2->result() as $fila){
 739	      $ids2[] = $fila->$campo21;
 740	    }
 741	    $this->CI->db->select($campo31);
 742	    $countIds2 = count($ids2);
 743	    $ids2Modificado = array_slice($ids2, 1, $countIds2-1);
 744	    $this->CI->db->where($campo32, $ids2[0]);
 745	    foreach($ids2Modificado as $key => $value){
 746	      $this->CI->db->or_where($campo32, $value);
 747	    }
 748	    $query3 = $this->CI->db->get($tabla3);
 749	    if($query3->num_rows() > 0){
 750	      foreach ($query3->result() as $fila){
 751		$ids3[] = $fila->$campo31;
 752	      }
 753	      $this->CI->db->select($campo41);
 754	      $countIds3 = count($ids3);
 755	      $ids3Modificado = array_slice($ids3, 1, $countIds3-1);
 756	      $this->CI->db->where($campo42, $ids3[0]);
 757	      foreach($ids3Modificado as $key => $value){
 758		$this->CI->db->or_where($campo42, $value);
 759	      }
 760	      $query4 = $this->CI->db->get($tabla4);
 761	      if($query4->num_rows() > 0){
 762		foreach ($query4->result() as $fila){
 763		  $ids4[] = $fila->$campo41;
 764		}
 765		$this->CI->db->select($seleccion);
 766		$countIds4 = count($ids4);
 767		$ids4Modificado = array_slice($ids4, 1, $countIds4-1);
 768		$this->CI->db->where($campo51, $ids4[0]);
 769                if(!empty($where))
 770                  $this->CI->db->where($where[0], $where[1]);
 771		foreach($ids4Modificado as $key => $value){
 772		  $this->CI->db->or_where($campo51, $value);
 773                  if(!empty($where))
 774                    $this->CI->db->where($where[0], $where[1]);
 775		}
 776	      }
 777	    }
 778	  }
 779	}
 780        else
 781	  return array();
 782	break;            
 783    }        
 784    if($flag == 0) $this->CI->db->select($seleccion);
 785    if(!empty($where) && $flag == 0)
 786      $this->CI->db->where($where[0], $where[1]);
 787    if(!is_null($join)){      
 788      foreach($join as $key=>$value){
 789        if(count($value)==2)
 790        $this->CI->db->join($join[$key][0],$join[$key][1]);
 791        elseif(count($value)==3)
 792        $this->CI->db->join($join[$key][0],$join[$key][1],$join[$key][2]);
 793      }    
 794    }
 795    $this->CI->db->order_by($sidx, $sord);    
 796    $this->CI->db->limit($limit, $start);
 797    if(!is_null($distinct)){if($distinct == 1) $this->CI->db->distinct();}
 798    $query = $this->CI->db->get($table);
 799    if($query->num_rows() > 0){
 800      foreach ($query->result() as $fila){        
 801          $data[] = $fila;
 802      }
 803      return $data;
 804    }
 805  }  
 806  
 807  //Metodo que me hace las operaciones CUD (Create, Update, Delete). 
 808  function cud($campos, $id, $table, $primaryKey, $oper, $camposMM=null, $camposMM2=null){    
 809    foreach ($campos as $key => $value){
 810      if (!empty($value)){
 811        $arrayCampos[$key] = $value;
 812      }          
 813    }    
 814    if (!isset($oper)){
 815      if(count($primaryKey) == 1)
 816        $this->CI->db->where($primaryKey[0], $id)->update($table, $arrayCampos);
 817      else{
 818        foreach($primaryKey as $key => $value){
 819          $this->CI->db->where($primaryKey[$key], $primaryKey[$value]);  
 820        }
 821        $this->CI->db->update($table, $arrayCampos);
 822      }
 823    }
 824    else{
 825      switch($oper){
 826        case 'edit':	  
 827	  $this->CI->db->trans_start();
 828          if(count($primaryKey) == 1)
 829            $this->CI->db->where($primaryKey[0], $id)->update($table, $arrayCampos);
 830          else{
 831            foreach($primaryKey as $key => $value){
 832              $this->CI->db->where($primaryKey[$key], $primaryKey[$value]);  
 833            }
 834            $this->CI->db->update($table, $arrayCampos);
 835          }
 836	  if(!is_null($camposMM)){
 837            $countCamposMM = count($camposMM);
 838	    if($countCamposMM > 1){
 839	      for($i=0; $i<$countCamposMM; $i++){
 840		$data = explode(',', $camposMM[$i]['data']);
 841		$this->CI->db->delete($camposMM[$i]['table'], array($camposMM[$i]['campo1'] => $id));
 842		foreach($data as $key => $value){						
 843		  $dataForUpdate->$camposMM[$i]['campo1'] = $id;
 844		  $dataForUpdate->$camposMM[$i]['campo2'] = $value;
 845		  $this->CI->db->insert($camposMM[$i]['table'], $dataForUpdate);
 846		  unset($dataForUpdate);
 847		}
 848	      }  
 849	    }
 850	    else{
 851	      $data = explode(',', $camposMM[0]['data']);
 852	      $this->CI->db->delete($camposMM[0]['table'], array($camposMM[0]['campo1'] => $id));
 853	      foreach($data as $key => $value){						
 854		$dataForUpdate->$camposMM[0]['campo1'] = $id;
 855		$dataForUpdate->$camposMM[0]['campo2'] = $value;
 856		$this->CI->db->insert($camposMM[0]['table'], $dataForUpdate);
 857		unset($dataForUpdate);
 858	      }
 859	    }
 860	  }
 861	  $this->CI->db->trans_complete();
 862          break;                                                         
 863        case 'add':	  
 864	  $this->CI->db->trans_start();
 865	  $this->CI->db->insert($table, $arrayCampos);          	  
 866	  if(!is_null($camposMM)){
 867            $id = $this->CI->db->insert_id();
 868            $countCamposMM = count($camposMM);	    
 869	    if($countCamposMM > 1){	      
 870	      for($i=0; $i<$countCamposMM; $i++){
 871		$data = explode(',', $camposMM[$i]['data']);
 872		foreach($data as $key => $value){
 873		  $dataForInsert->$camposMM[$i]['campo1'] = $id;
 874		  $dataForInsert->$camposMM[$i]['campo2'] = $value;		  
 875		  $this->CI->db->insert($camposMM[$i]['table'], $dataForInsert);
 876		  unset($dataForInsert);  
 877		}  	        
 878	      }	    
 879	    }
 880	    else{
 881	      $data = explode(',', $camposMM[0]['data']);
 882	      foreach($data as $key => $value){
 883		$dataForInsert->$camposMM[0]['campo1'] = $id;
 884		$dataForInsert->$camposMM[0]['campo2'] = $value;		  
 885		$this->CI->db->insert($camposMM[0]['table'], $dataForInsert);
 886                unset($dataForInsert);
 887	      }              
 888	    }
 889	  }
 890	  if(!is_null($camposMM2)){
 891            $id = $this->CI->db->insert_id();
 892	    $countCamposMM2 = count($camposMM2);
 893	    if($countCamposMM2 > 1){
 894	      for($i=0; $i<$countCamposMM2; $i++){				
 895		$dataForInsert->$camposMM2[$i]['campo1'] = $camposMM2[$i]['valor1'];
 896		$dataForInsert->$camposMM2[$i]['campo2'] = $id;		  
 897		$this->CI->db->insert($camposMM2[$i]['table'], $dataForInsert);
 898		unset($dataForInsert);  		  	      
 899	      }
 900	    }
 901	    else{	      	      
 902	      $dataForInsert->$camposMM2[0]['campo1'] = $camposMM2[0]['valor1'];
 903	      $dataForInsert->$camposMM2[0]['campo2'] = $id;		  
 904	      $this->CI->db->insert($camposMM2[0]['table'], $dataForInsert);
 905	      unset($dataForInsert);	       
 906	    }
 907	  }	  
 908	  $this->CI->db->trans_complete();
 909          break;
 910        case 'del':
 911          $count = count($primaryKey);
 912          if($count > 1){
 913            foreach($primaryKey as $key => $value){
 914              $this->CI->db->where($key, $value);
 915            }
 916            $this->CI->db->delete($table);
 917          }
 918          else{
 919            $clauWhere = array($primaryKey[0] => $id);                                                      
 920            $this->CI->db->delete($table, $clauWhere);
 921            break;    
 922          }          
 923      }
 924    }
 925  }
 926  
 927  function getNumFilas($table, $where=null, $where2=null){
 928    if(!is_null($where)){
 929      $this->CI->db->where($where[0], $where[1]);
 930      if(!is_null($where2)) $this->CI->db->where($where2[0], $where2[1]);
 931        $this->CI->db->from($table);
 932      return $this->CI->db->count_all_results();
 933    }
 934    else
 935      return $this->CI->db->count_all_results($table);    
 936  }
 937  
 938  function getRegistrosMM($campo1, $campo2, $idsArreglo, $table, $seleccion, $campo3, $orderBy, $table2){
 939    $countIdsArreglo = count($idsArreglo);
 940    $idsArregloModificado = array_slice($idsArreglo, 1, $countIdsArreglo-1);
 941    $this->CI->db->select($campo1);
 942    $this->CI->db->where($campo2,$idsArreglo[0]);
 943    foreach($idsArregloModificado as $key => $value){
 944	$this->CI->db->or_where($campo2, $value);
 945    }
 946    $this->CI->db->order_by($campo1,'asc');
 947    $query = $this->CI->db->get($table);
 948    if($query->num_rows() > 0){
 949      foreach ($query->result() as $fila) {
 950	$ids[] = $fila->$campo1;        
 951      }
 952      $countIds = count($ids);
 953      $idsModificado = array_slice($ids, 1, $countIds-1);
 954      $this->CI->db->select($seleccion);	
 955      $this->CI->db->where($campo3, $ids[0]);
 956      foreach($idsModificado as $key => $value){
 957	$this->CI->db->or_where($campo3, $value);
 958      }
 959      $this->CI->db->order_by($orderBy, 'asc');
 960      $query2 = $this->CI->db->get($table2);	
 961      if ($query2->num_rows() > 0){
 962	foreach ($query2->result() as $fila) {
 963	  $data[] = $fila;
 964	}
 965      return $data;
 966      }    
 967    }
 968    else return array();
 969  }
 970  
 971  function getRegistrosByIds($ids, $seleccion, $campo1, $orderBy, $table){    	      
 972    $countIds = count($ids);    
 973    $idsModificado = array_slice($ids, 1, $countIds-1);
 974    $this->CI->db->select($seleccion);	
 975    $this->CI->db->where($campo1, $ids[0]);
 976    foreach($idsModificado as $key => $value){
 977      $this->CI->db->or_where($campo1, $value);
 978    }
 979    $this->CI->db->order_by($orderBy, 'asc');
 980    $query = $this->CI->db->get($table);
 981    if ($query->num_rows() > 0){
 982      foreach ($query->result() as $fila){
 983	$data[] = $fila;
 984      }
 985      return $data;
 986    }
 987  }
 988	      
 989  function getRegistroById($seleccion, $byCampo, $id, $table, $orderBy=null){
 990    $this->CI->db->select($seleccion);
 991    if(!is_null($byCampo) && !is_null($id))    
 992      $this->CI->db->where($byCampo,$id);
 993    if(!is_null($orderBy))
 994      $this->CI->db->order_by($orderBy, 'asc');
 995    $query = $this->CI->db->get($table);
 996    if($query->num_rows() > 0){
 997      foreach ($query->result() as $fila) {
 998	$data[] = $fila;
 999      }
1000      return $data;    
1001    }
1002  }
1003  
1004  function getAll($seleccion, $table, $orderBy, $where){
1005    $this->CI->db->select($seleccion);
1006    if (!empty($where))
1007      $this->CI->db->where($where[0], $where[1]);
1008    if($orderBy != '')
1009      $this->CI->db->order_by($orderBy,'asc');
1010    $query = $this->CI->db->get($table);
1011    if($query->num_rows() > 0){
1012      foreach ($query->result() as $fila) {
1013        $data[] = $fila;
1014      }
1015      return $data;    
1016    }
1017    else return array();
1018  }
1019  
1020  /*************************Metodo Para cargar select de registros de una relacion un nivel mas arriba de Muchos a Muchos, Ejemplo Obras-Municipios*************************************/
1021  function cargaSelectSearchMM1($operacion1, $operacion2, $operacion3){
1022    $ids 	= array();
1023    $idsArreglo = array();
1024    $registros 	= $this->getAll($operacion1['seleccion'], $operacion1['table'], $operacion1['orderBy'], $operacion1['where']);
1025    if(count($registros) > 0){
1026      foreach ($registros as $registro){
1027        $idsArreglo[] = $registro->$operacion1['seleccion'];      
1028      }
1029      $registros2 = $this->getRegistrosMM($operacion2['campo1'], $operacion2['campo2'], $idsArreglo, $operacion2['table'], $operacion2['seleccion'], $operacion2['campo3'], $operacion2['orderBy'], $operacion2['table2']);      
1030        foreach ($registros2 as $registro2){
1031          if (!in_array($registro2->$operacion2['byCampo'], $ids) ){
1032            $ids[] = $registro2->$operacion2['byCampo'];             
1033          }  
1034        }
1035      echo '<select>';
1036      $registros3 = $this->getRegistrosByIds($ids, $operacion3['seleccion'], $operacion3['campo1'], $operacion3['orderBy'], $operacion3['table']);
1037      $option = explode(',', $operacion3['seleccion']);
1038      foreach ($registros3 as $registro3){      
1039        echo '<option value="'. $registro3->$option[0] .'">'.$registro3->$option[1].'</option>';     
1040      }                                  
1041      echo '</select>';
1042    }
1043    else echo '<select><option value="">No hay Registros Disponibles</option></select>';
1044  }
1045  
1046  /*************************Metodo Para cargar select de registros de una relacion un nivel mas arriba de Muchos a Muchos nivel 1, Ejemplo Obras de ejecutores Nivel 4 - Municipios*************************************/
1047  function cargaSelectSearchMM12($operacion1, $operacion2, $operacion3, $operacion4){
1048    $ids 	= array();
1049    $ids2 	= array();
1050    $idsArreglo = array();
1051    $registros 	= $this->getAll($operacion1['seleccion'], $operacion1['table'], $operacion1['orderBy'], $operacion1['where']);
1052    if(count($registros) > 0){
1053      foreach ($registros as $registro){
1054        $idsArreglo[] = $registro->$operacion1['seleccion'];      
1055      }
1056      $registros2 = $this->getRegistrosMM($operacion2['campo1'], $operacion2['campo2'], $idsArreglo, $operacion2['table'], $operacion2['seleccion'], $operacion2['campo3'], $operacion2['orderBy'], $operacion2['table2']);      
1057        foreach ($registros2 as $registro2){
1058          if (!in_array($registro2->$operacion2['byCampo'], $ids) ){
1059            $ids[] = $registro2->$operacion2['byCampo'];             
1060          }  
1061        }    
1062      $registros3 = $this->getRegistrosByIds($ids, $operacion3['seleccion'], $operacion3['campo1'], $operacion3['orderBy'], $operacion3['table']);
1063      foreach ($registros3 as $registro3){
1064        if (!in_array($registro3->$operacion3['seleccion'], $ids2) ){
1065          $ids2[] = $registro3->$operacion3['seleccion'];             
1066        }      
1067      }                                      
1068      echo '<select>';
1069      $registros4 = $this->getRegistrosByIds($ids2, $operacion4['seleccion'], $operacion4['campo1'], $operacion4['orderBy'], $operacion4['table']);
1070      $option = explode(',', $operacion4['seleccion']);
1071      foreach ($registros4 as $registro4){            
1072        echo '<option value="'. $registro4->$option[0] .'">'.$registro4->$option[1].'</option>';     
1073      }
1074      echo '</select>';
1075    }
1076    else echo '<select><option value="">No hay Registros Disponibles</option></select>';
1077  }
1078  /*************************Metodo Para cargar select de registros de una relacion de Muchos a Muchos, Ejemplo Obras-Parroquias*************************************/
1079  function cargaSelectSearchMM($operacion1, $operacion2, $operacion3){
1080    $ids 	= array();
1081    $arreglo    = array();    
1082    $registros 	= $this->getAll($operacion1['seleccion'], $operacion1['table'], $operacion1['orderBy'], $operacion1['where']);
1083    if(count($registros) > 0){
1084      foreach ($registros as $registro) {
1085        $arreglo[] = $registro->$operacion1['seleccion'];      
1086      }
1087      $registros2 = $this->getRegistrosMM($operacion2['campo1'], $operacion2['campo2'], $arreglo, $operacion2['table'], $operacion2['seleccion'], $operacion2['campo3'], $operacion2['orderBy'], $operacion2['table2']);      
1088      foreach ($registros2 as $registro2){
1089        if (!in_array($registro2->$operacion2['byCampo'], $ids) ){
1090          $ids[] = $registro2->$operacion2['byCampo'];             
1091        }  
1092      }
1093      echo '<select>';
1094      $registros3 = $this->getRegistrosByIds($ids, $operacion3['seleccion'], $operacion3['campo1'], $operacion3['orderBy'], $operacion3['table']);
1095      $option = explode(',', $operacion3['seleccion']);
1096      foreach ($registros3 as $registro3){      
1097        echo '<option value="'. $registro3->$option[0] .'">'.$registro3->$option[1].'</option>';     
1098      }                                  
1099      echo '</select>';
1100    }
1101    else echo '<select><option value="">No hay Registros Disponibles</option></select>';
1102  }
1103  
1104  /*************************Metodo Para cargar select de registros de una relacion dos niveles arriba de Muchos a Muchos, Ejemplo Obras-Ejes*************************************/
1105  function cargaSelectSearchMM2($operacion1, $operacion2, $operacion3, $operacion4){
1106    $ids 	= array();
1107    $ids2	= array();
1108    $idsArreglo	= array();
1109    $registros 	= $this->getAll($operacion1['seleccion'], $operacion1['table'], $operacion1['orderBy'], $operacion1['where']);
1110    if(count($registros) > 0){          
1111      foreach ($registros as $registro) {
1112        $idsArreglo[] = $registro->$operacion1['seleccion'];      
1113      }
1114      $registros2 = $this->getRegistrosMM($operacion2['campo1'], $operacion2['campo2'], $idsArreglo, $operacion2['table'], $operacion2['seleccion'], $operacion2['campo3'], $operacion2['orderBy'], $operacion2['table2']);      
1115      foreach ($registros2 as $registro2){
1116        if (!in_array($registro2->$operacion2['byCampo'], $ids) ){
1117          $ids[] = $registro2->$operacion2['byCampo'];             
1118        }  
1119      }
1120      $registros3 = $this->getRegistrosByIds($ids, $operacion3['seleccion'], $operacion3['campo1'], $operacion3['orderBy'], $operacion3['table']);
1121      foreach ($registros3 as $registro3){
1122        if (!in_array($registro3->$operacion3['byCampo'], $ids2) ){
1123          $ids2[] = $registro3->$operacion3['byCampo'];             
1124        }  
1125      }
1126      echo '<select>';
1127      $registros4 = $this->getRegistrosByIds($ids2, $operacion4['seleccion'], $operacion4['campo1'], $operacion4['orderBy'], $operacion4['table']);
1128      $option = explode(',', $operacion4['seleccion']);
1129      foreach ($registros4 as $registro4){      
1130        echo '<option value="'. $registro4->$option[0] .'">'.$registro4->$option[1].'</option>';     
1131      }                                  
1132      echo '</select>';
1133    }
1134    else echo '<select><option value="">No hay Registros Disponibles</option></select>';
1135  }
1136  
1137  /*************************Metodo Para cargar select de registros de una relacion un nivel arriba de Muchos a Muchos Nivel 2, Ejemplo Obras de ejecutores nivel 4 - Ejes*************************************/
1138  function cargaSelectSearchMM22($operacion1, $operacion2, $operacion3, $operacion4, $operacion5){
1139    $ids 	= array();
1140    $ids2	= array();
1141    $ids3	= array();
1142    $idsArreglo	= array();
1143    $registros 	= $this->getAll($operacion1['seleccion'], $operacion1['table'], $operacion1['orderBy'], $operacion1['where']);
1144    if(count($registros) > 0){          
1145      foreach ($registros as $registro) {
1146        $idsArreglo[] = $registro->$operacion1['seleccion'];      
1147      }
1148      $registros2 = $this->getRegistrosMM($operacion2['campo1'], $operacion2['campo2'], $idsArreglo, $operacion2['table'], $operacion2['seleccion'], $operacion2['campo3'], $operacion2['orderBy'], $operacion2['table2']);      
1149      foreach ($registros2 as $registro2){
1150        if (!in_array($registro2->$operacion2['byCampo'], $ids) ){
1151          $ids[] = $registro2->$operacion2['byCampo'];             
1152        }  
1153      }
1154      $registros3 = $this->getRegistrosByIds($ids, $operacion3['seleccion'], $operacion3['campo1'], $operacion3['orderBy'], $operacion3['table']);
1155      foreach ($registros3 as $registro3){
1156        if (!in_array($registro3->$operacion3['byCampo'], $ids2) ){
1157          $ids2[] = $registro3->$operacion3['byCampo'];             
1158        }  
1159      }
1160      $registros4 = $this->getRegistrosByIds($ids2, $operacion4['seleccion'], $operacion4['campo1'], $operacion4['orderBy'], $operacion4['table']);
1161      foreach ($registros4 as $registro4){
1162        if (!in_array($registro4->$operacion4['byCampo'], $ids3) ){
1163          $ids3[] = $registro4->$operacion4['byCampo'];             
1164        }  
1165      }
1166      echo '<select>';
1167      $registros5 = $this->getRegistrosByIds($ids3, $operacion5['seleccion'], $operacion5['campo1'], $operacion5['orderBy'], $operacion5['table']);
1168      $option = explode(',', $operacion5['seleccion']);
1169      foreach ($registros5 as $registro5){      
1170        echo '<option value="'. $registro5->$option[0] .'">'.$registro5->$option[1].'</option>';     
1171      }                                  
1172      echo '</select>';
1173    }
1174    else

Large files files are truncated, but you can click here to view the full file