Hacer que el grid mantenga los datos escritos luego del submit

De CidesaWiki

Saltar a navegación, buscar

Para hacer que el grid mantenag los datos luego del submit se debe configurar el validateEdit de la siguiente forma



  public function validateEdit()
  {
    $resp=-1;


    if($this->getRequest()->getMethod() == sfRequest::POST){
      

      $this->caajuoc = $this->getCaajuocOrCreate();
      
      $this->updateCaajuocFromRequest();
      
      $this->configGrid(); // [1]
      
      $grid = Herramientas::CargarDatosGrid($this,$this->obj); // [2]
    
      $this->configGrid($grid[0],$grid[1]); // [3]
      
      
      // Aqui van los llamados a los métodos de las clases del
      // negocio para validar los datos.
      // Los resultados de cada llamado deben ser analizados por ejemplo:

      $resp = Compras::validarAlmajuoc($this->caajuoc,$grid);

      // al final $resp es analizada en base al código que retorna
      // Todas las funciones de validación y procesos del negocio
      // deben retornar códigos >= -1. Estos código serám buscados en 
      // el archivo errors.yml en la función handleErrorEdit()

      if($resp!=-1){
        $this->coderror = $resp; 
        return false;
      } else return true;

    }else return true;
  
  }

Luego de esto ya el objeto $this->obj contiene los registros que realmente van a ser mostrado. Cabe desatacar que los registros nuevos se mostrarán y los eliminados no, esto ya actualmente esta validado.

Por otro lado la función "configGrid" sufre una modificación que debe ser incluida:


  public function configGrid($reg = array(),$regelim = array()){ // [1]

      $this->regelim = $regelim; // [2]
    
     
      if(!count($reg)>0){ // [3]
		  $c = new Criteria();
		  $c->add(CaartaocPeer::AJUOC ,$this->caajuoc->getAjuoc());
		  // TODO: Ampliar el Where para colocar la siguiente restricción que tiene el 
		  // Código de VB:
		  // CDbl(ObtenerValorNumericoReal(CAArtOrd!CanOrd) - ObtenerValorNumericoReal(CAArtOrd!CanAju)) <> CDbl(ObtenerValorNumericoReal(CAArtOrd!CanRec))
	      $reg = CaartaocPeer::doSelect($c);
      }
      
      $this->obj = Herramientas::getConfigGrid(sfConfig::get('sf_app_module_dir').'/almajuoc/'.sfConfig::get('sf_app_module_config_dir_name').'/grid_caartaoc',$reg); // [4]
      
    
  } 

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas