Documentación GVHIDRA 3.1.5
Referencia de la Clase gvHidraForm_dummy
Diagrama de herencias de gvHidraForm_dummy
gvHidraForm Action Object TinvDonantes

Métodos públicos

 __construct ($data, $ids)
 prepareDataSource ()
 recoverData ()
 prepareDataSourceEdit ()
 recoverDataEdit ()
 prepareDataSourceDetails ($detail, $masterData)
 recoverDataDetail ()
 processInsert ()
 processDelete ()
 processUpdate ()
 postInsertar ($objDatos)
 postModificar ($objDatos)
 postBorrar ($objDatos)
 setIdsForData ($fieldsForSearch)
 setDataForSearch ($data)
 getDataForSearch ()
 setDataForEdit ($data)
 getDataForEdit ()

Métodos privados

 existeRegistro ($registro, $matrixId=1)

Descripción detallada

Definición en la línea 46 del archivo gvHidraForm_dummy.php.


Documentación del constructor y destructor

__construct ( data,
ids 
)

Constructor de

Definición en la línea 51 del archivo gvHidraForm_dummy.php.

                                                 {

                $this->setDataForSearch($data);
                $this->setIdsForData($ids);
                $this->setDataForEdit(null);

                parent::__construct();
                
        } //Fin de Constructor

Documentación de las funciones miembro

existeRegistro ( registro,
matrixId = 1 
) [private]

Metodo para comprobar si un registro ya existe en array de datos, teniendo en cuenta los campos clave Devuelve:

Parámetros:
arraycontiene tres elementos con: 0: booleano indicando si existe 1: registro encontrado 2: campos clave concatenados del registro buscado 3: clave del registro encontrado

Definición en la línea 275 del archivo gvHidraForm_dummy.php.

                                                                  {

                if (empty($this->ids))
                        throw new Exception('No se ha definido los campos identificadores');
                        
                if($matrixId==1)
                        $data = $this->getDataForSearch();
                else
                        $data = $this->getDataForEdit();
                        
                // recorro datos para ver si ya existe
                $clave = array();
                foreach ($this->ids as $campo)
                        $clave[] = $registro[$campo];
                $clave_concat = implode('-',$clave);
                
                foreach ($data as $kreg=>$reg) {
                        $found = true;
                        foreach ($this->ids as $id) {
                                if ($registro[$id] != $reg[$id]) {
                                        $found = false;
                                        break;
                                }
                        }
                        if ($found)
                                return array(true,$reg,$clave_concat,$kreg);
                }
                return array(false,null,$clave_concat,null);
        }
getDataForEdit ( )

Metodo que, para patrones tabular-registro, devuelve el contenido de la matriz de datos del modo edicion/insercion.

Devuelve:
array contiene la matriz de datos

Definición en la línea 363 del archivo gvHidraForm_dummy.php.

                                         {

                return $this->dataEdit;         
        }       
getDataForSearch ( )

Metodo que devuelve el contenido de la matriz de datos del modo consulta.

Devuelve:
array contiene la matriz de datos

Definición en la línea 343 del archivo gvHidraForm_dummy.php.

                                           {
                
                return $this->data;
        }
postBorrar ( objDatos)

Definición en la línea 313 del archivo gvHidraForm_dummy.php.

                                              {
                return 0;
        }
postInsertar ( objDatos)

Definición en la línea 305 del archivo gvHidraForm_dummy.php.

                                                {
                return 0;
        }
postModificar ( objDatos)

Definición en la línea 309 del archivo gvHidraForm_dummy.php.

                                                 {
                return 0;
        }
prepareDataSource ( )

Mtodo que se debe sobreescribir por las clases de extension para dar el comportamiento a la preparacin de la obtencion de datos. P.E. en la extension CRUD sirve para crear la consulta SQL.

Devuelve:
none

Reimplementado de gvHidraForm.

Definición en la línea 63 del archivo gvHidraForm_dummy.php.

                                        {

    }
prepareDataSourceDetails ( detail,
masterData 
)

Mtodo que se encarga de preparar la fuente de datos de un detalle

Parámetros:
objectdetail referencia a la CM que se quiere recargar
arraymasterData matriz de datos del maestro
Devuelve:
none

Reimplementado de gvHidraForm.

Definición en la línea 94 del archivo gvHidraForm_dummy.php.

                                                                      { 

                $v_datos = array();
                foreach ($this->v_hijos[$this->panelDetalleActivo] as $padre => $hijo){         
                        
                        $filapadre = array_keys($masterData);
                //Si es una lista le asignamos el valor del seleccionado
                if(is_array($masterData[$filapadre[0]][$padre])){

                    $v_datos[$hijo] = $masterData[$filapadre[0]][$padre]['seleccionado'];
                        }
                else{

                    $v_datos[$hijo] = $masterData[$filapadre[0]][$padre];
                        }
                }
                //Tenemos que seleccionar dentro del array detalle todas las filas que pertenezcan al maestro seleccionado.
                $detail->filaSeleccionadaMaestro = $v_datos;
        }
prepareDataSourceEdit ( )

Reimplementado de gvHidraForm.

Definición en la línea 73 del archivo gvHidraForm_dummy.php.

                                            {

        $this->filasSeleccionadas = $this->comunica->getAlltuplas();
    }
processDelete ( )

Reimplementado de gvHidraForm.

Definición en la línea 170 del archivo gvHidraForm_dummy.php.

                                        {

                $m_datosTpl = $this->comunica->getAllTuplas();
                $aborrar = array();
                //IgepDebug::setDebug(DEBUG_IGEP,'processDelete: '.var_export($m_datosTpl,true));               

                // Confirmamos el borrado
                foreach ($m_datosTpl as $filaborrada) {

                        //Borramos la tupla del primer conjunto
                        $res = $this->existeRegistro($filaborrada);
                        if ($res[0]) {
                                unset($this->data[$res[3]]);
                        }

                        //Borramos la tupla del segundo conjunto
                        if($this->dataEdit != null) {
                                $res = $this->existeRegistro($filaborrada,2);
                                if ($res[0]) {
                                        unset($this->dataEdit[$res[3]]);
                                }
                        }
                }

        $this->comunica->reset();
        $comunicaUsuario = new IgepComunicaUsuario($this->comunica,$this->v_preInsercionDatos,$this->v_listas);
        $retorno = $this->postBorrar($comunicaUsuario);

        //Comprobacin de errores
        $errores = $this->obj_errorNegocio->hayError();
        //Cancelamos la transaccion si hay errores o el return es -1
        if($errores or $retorno==-1)
                return -1;

                //IgepDebug::setDebug(DEBUG_IGEP,'processDelete: '.var_export($this->data,true));               
                return $retorno;
        }
processInsert ( )

Reimplementado de gvHidraForm.

Definición en la línea 138 del archivo gvHidraForm_dummy.php.

                                        {

                $m_datosTpl = $this->comunica->getAllTuplas();
                $nuevas = array();
                foreach ($m_datosTpl as $filanueva) {
                        $res = $this->existeRegistro($filanueva);
                        if ($res[0]) {
                                // error de identificacion
                                $this->showMensaje('IGEP-1',array('El registro \''.$res[2].'\' ya existe'));
                                return -1;
                        } else
                                $nuevas[] = $filanueva;
                }
        // confirmacion de la insercion
                $this->data = array_merge($this->data, $nuevas);
                if($this->dataEdit != null) {
                        $this->dataEdit = $nuevas;
                }
                
        $this->comunica->reset();
        $comunicaUsuario = new IgepComunicaUsuario($this->comunica,$this->v_preInsercionDatos,$this->v_listas);
        $retorno = $this->postInsertar($comunicaUsuario);

        $errores = $this->obj_errorNegocio->hayError();     
        //Cancelamos la transaccion si hay errores o el return es -1
        if($errores or $retorno==-1){
                return -1;
        }
        
        }
processUpdate ( )

Reimplementado de gvHidraForm.

Definición en la línea 210 del archivo gvHidraForm_dummy.php.

                                        {

                $m_datosTpl = $this->comunica->getAllTuplas();
                //IgepDebug::setDebug(DEBUG_IGEP,'processUpdate: '.var_export($m_datosTpl,true));               

        $retorno = 0;
                // confirmamos la actualizacion
                foreach ($m_datosTpl as $reg) {
                        
                        if($this->dataEdit == null) {
                                $res = $this->existeRegistro($reg);
                                if ($res[0])
                                        $this->data[$res[3]] = $reg;
                                else 
                                        throw new Exception('Registro \''.$res[2].'\' no encontrado para actualizarlo');
                        }
                        else {
                                $res = $this->existeRegistro($reg,2);
                                if ($res[0])
                                        $this->dataEdit[$res[3]] = $reg;
                                else 
                                        throw new Exception('Registro \''.$res[2].'\' no encontrado para actualizarlo');
                                
                                //Si existe en el primer subconjunto actualizamos
                                $res = $this->existeRegistro($reg,1);
                                if ($res[0]) {
                                
                                        $data = $this->data[$res[3]];
                                        foreach($data as $field => $value) {
                                                if(array_key_exists($field,$reg))
                                                        $data[$field] = $reg[$field];
                                        }
                                        $this->data[$res[3]] = $data;
                                }
                                
                        }                       
                }
                
                
        //Lanzamos el postModificar si no ha habido errores
                $this->comunica->reset();
        $comunicaUsuario = new IgepComunicaUsuario($this->comunica,$this->v_preInsercionDatos,$this->v_listas);
        $retorno = $this->postModificar($comunicaUsuario);
        
        /*Comprobacin de errores*/
        $errores = $this->obj_errorNegocio->hayError();     
        //Cancelamos la transaccion si hay errores o el return es -1
        if($errores or $retorno==-1){
                return -1;
        }

                //IgepDebug::setDebug(DEBUG_IGEP,'processUpdate: '.var_export($this->data,true));               
                return $retorno;
        }
recoverData ( )

Mtodo que lanza la consulta SQL y retorna los datos

Devuelve:
none

Reimplementado de gvHidraForm.

Definición en la línea 67 del archivo gvHidraForm_dummy.php.

                                  {

        return $this->data;
    } 
recoverDataDetail ( )

Metodo que se encarga de obtener los datos del detalle

Reimplementado de gvHidraForm.

Definición en la línea 115 del archivo gvHidraForm_dummy.php.

                                        {

                $filas = array();                               
                //Obtenemos las keys
                $fieldsToCompare = array_keys($this->filaSeleccionadaMaestro);
                $numberOfComparations = count($fieldsToCompare);
                
                foreach($this->data as $index => $row) {
                        $comparations = 0;
                        foreach($fieldsToCompare as $field) {
                                if($row[$field]!=$this->filaSeleccionadaMaestro[$field])
                                        break;
                                $comparations++;
                                if($comparations==$numberOfComparations)
                                        $filas[]=$row;                                  
                        }
                }
                return $filas;          
    }    
recoverDataEdit ( )

Reimplementado de gvHidraForm.

Definición en la línea 78 del archivo gvHidraForm_dummy.php.

                                      {

                $filas = array();
        foreach ($this->filasSeleccionadas as $key=>$value) {
                $res = $this->existeRegistro($value,2);
                if ($res[0]) {
                        $filas[$key] = $res[1];
                }
        }
            if (empty($filas))
                $filas = $this->dataEdit;
        return $filas;
    }
setDataForEdit ( data)

Metodo que, para patrones tabular-registro, fija el contenido de la matriz de datos del modo edicion/insercion.

Parámetros:
arraycontiene la matriz de datos

Definición en la línea 353 del archivo gvHidraForm_dummy.php.

                                              {

                $this->dataEdit = $data;
        }       
setDataForSearch ( data)

Metodo para fijar la matriz de datos con la que trabajar el patrn tras realizar la accion de buscar.

Parámetros:
arraycontiene la matriz de datos

Definición en la línea 333 del archivo gvHidraForm_dummy.php.

                                                {

                $this->data = $data;
        }
setIdsForData ( fieldsForSearch)

Metodo para fijar los ids de los arrays de datos

Parámetros:
arraycontiene los nombres de los campos que forma el identificador del registro

Definición en la línea 323 del archivo gvHidraForm_dummy.php.

                                                        {

                $this->ids = $fieldsForSearch;
        }       

La documentación para esta clase fue generada a partir del siguiente fichero: