![]() |
Documentación GVHIDRA 3.1.5
|
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) |
Definición en la línea 46 del archivo gvHidraForm_dummy.php.
__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
existeRegistro | ( | $ | registro, |
$ | matrixId = 1 |
||
) | [private] |
Metodo para comprobar si un registro ya existe en array de datos, teniendo en cuenta los campos clave Devuelve:
array | contiene 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.
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.
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.
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
object | detail referencia a la CM que se quiere recargar |
array | masterData matriz de datos del maestro |
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
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.
array | contiene 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.
array | contiene 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
array | contiene 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; }