administrador.base.orm.filtros.complemento - gamboamartin/administrador GitHub Wiki
complemento
La función complemento
se encarga de procesar un objeto stdClass
llamado $complemento
, aplicando una serie de filtros y parámetros adicionales utilizando la información de un modelo. La función realiza las siguientes acciones:
- Limpia los filtros del objeto
$complemento
. - Inicializa los parámetros SQL necesarios.
- Asegura que el objeto
$complemento
contenga todas las claves requeridas. Si ocurre algún error en cualquier paso del proceso, devuelve un array con los detalles del error.
Signatura
private function complemento(stdClass $complemento, modelo $modelo): array|stdClass
Parámetros
stdClass $complemento
- Tipo:
stdClass
- Descripción: El objeto que contiene los datos que serán procesados, incluyendo filtros y parámetros SQL.
modelo $modelo
- Tipo:
modelo
- Descripción: Un objeto de tipo
modelo
que contiene las columnas y filtros necesarios para procesar el complemento.
Retorno
array|stdClass
- Tipo:
array
o `stdClass** - Descripción:
- Si la operación es exitosa, devuelve un objeto
stdClass
con los filtros limpiados, los parámetros SQL inicializados y las claves necesarias aseguradas. - Si ocurre un error en cualquier parte del proceso, devuelve un array con un mensaje de error y los detalles correspondientes.
- Si la operación es exitosa, devuelve un objeto
Explicación Detallada
-
Limpieza de filtros:
- La función comienza limpiando los filtros en el objeto
$complemento
utilizando las columnas extra del modelo como referencia para los datos a filtrar. Si ocurre un error durante este proceso, devuelve un mensaje de error.
$complemento_ = (new where())->limpia_filtros(filtros: $complemento, keys_data_filter: $modelo->columnas_extra); if (errores::$error) { return $this->error->error(mensaje: 'Error al limpiar filtros', data: $complemento_); }
- La función comienza limpiando los filtros en el objeto
-
Inicialización de parámetros SQL:
- Después de limpiar los filtros, se inicializan los parámetros SQL utilizando la función
init_params_sql
. Esta función asegura que los parámetros necesarios para la consulta SQL estén correctamente configurados. Si ocurre un error, se devuelve un array de error.
$complemento_r = (new where())->init_params_sql(complemento: $complemento_, keys_data_filter: $modelo->keys_data_filter); if (errores::$error) { return $this->error->error(mensaje: 'Error al inicializar params', data: $complemento_r); }
- Después de limpiar los filtros, se inicializan los parámetros SQL utilizando la función
-
Inicialización del complemento:
- Finalmente, la función asegura que el objeto
$complemento_r
contenga todas las claves necesarias mediante la funcióninicializa_complemento
. Si ocurre un error en este paso, se captura y se devuelve un mensaje de error.
$complemento_r = $this->inicializa_complemento(complemento: $complemento_r); if (errores::$error) { return $this->error->error(mensaje: 'Error al inicializar complemento', data: $complemento_r); }
- Finalmente, la función asegura que el objeto
-
Retorno del objeto
$complemento_r
:- Si todas las operaciones son exitosas, la función devuelve el objeto
$complemento_r
con los filtros y parámetros ajustados.
return $complemento_r;
- Si todas las operaciones son exitosas, la función devuelve el objeto
Ejemplo de uso
$complemento = new stdClass();
$modelo = new modelo();
$resultado = $this->complemento($complemento, $modelo);
// Resultado esperado:
// $complemento contiene los filtros limpiados, los parámetros SQL inicializados, y las claves necesarias aseguradas.
Código de la Función
private function complemento(stdClass $complemento, modelo $modelo): array|stdClass
{
$complemento_ = (new where())->limpia_filtros(filtros: $complemento,keys_data_filter: $modelo->columnas_extra);
if(errores::$error){
return $this->error->error(mensaje:'Error al limpiar filtros',data:$complemento_);
}
$complemento_r = (new where())->init_params_sql(complemento: $complemento_,
keys_data_filter: $modelo->keys_data_filter);
if(errores::$error){
return $this->error->error(mensaje:'Error al inicializar params',data:$complemento_r);
}
$complemento_r = $this->inicializa_complemento(complemento: $complemento_r);
if(errores::$error){
return $this->error->error(mensaje:'Error al inicializar complemento',data:$complemento_r);
}
return $complemento_r;
}