src.where.setea_filtro_rango - gamboamartin/where GitHub Wiki
setea_filtro_rango
La función setea_filtro_rango es una función privada que se utiliza para construir una cláusula SQL combinando un filtro de rango existente con una nueva condición. La función asegura que, si el filtro de rango ya contiene información, la nueva condición no esté vacía. Además, agrega condicionalmente un operador AND si el filtro de rango ya tiene contenido.
Signatura
private function setea_filtro_rango(string $condicion, string $filtro_rango_sql):array|string
Parámetros
-
string $condicion:
La nueva condición SQL que se desea agregar al filtro de rango existente. Esta cadena se limpia de espacios en blanco antes de ser procesada. -
string $filtro_rango_sql:
La cadena SQL que representa el filtro de rango existente. Esta cadena también se limpia de espacios en blanco antes de ser procesada.
Retorna
array|string:
Retorna una cadena que representa la cláusula SQL combinada. En caso de error, retorna un array de error generado por$this->error->error().
Explicación Detallada
-
Limpieza de las cadenas de entrada:
- La función elimina los espacios en blanco al inicio y al final de las cadenas
$filtro_rango_sqly$condicionutilizandotrim().
- La función elimina los espacios en blanco al inicio y al final de las cadenas
-
Validación de la condición cuando el filtro de rango tiene contenido:
- Si
$filtro_rango_sqlno está vacío y$condicionestá vacía, la función genera un mensaje de error y retorna un array con el mensaje de error.
- Si
-
Generación del operador
ANDsi es necesario:- La función llama a
and_filtro_fecha()para obtener la cadenaANDsi$filtro_rango_sqlno está vacío. - Si ocurre un error durante este proceso, se genera un mensaje de error y se retorna un array con el mensaje de error.
- La función llama a
-
Combinación del filtro de rango y la nueva condición:
- La función concatena
$filtro_rango_sqlcon la cadenaANDy la nueva$condicionpara formar la cláusula SQL final.
- La función concatena
-
Retorno de la cláusula SQL combinada:
- La función retorna la cadena
$filtro_rango_sqlque representa la cláusula SQL combinada.
- La función retorna la cadena
Ejemplos
$filtro_rango_sql = "fecha >= '2023-01-01'";
$condicion = "fecha <= '2023-12-31'";
$resultado = $this->setea_filtro_rango($condicion, $filtro_rango_sql);
// Resultado esperado:
// "fecha >= '2023-01-01' AND fecha <= '2023-12-31'"
// Un array de error si ocurre algún problema.
Código de la Función
private function setea_filtro_rango(string $condicion, string $filtro_rango_sql):array|string
{
$filtro_rango_sql = trim($filtro_rango_sql);
$condicion = trim($condicion);
if(trim($filtro_rango_sql) !=='' && trim($condicion) === ''){
return $this->error->error(mensaje: 'Error if filtro_rango tiene info $condicion no puede venir vacio',
data: $filtro_rango_sql, es_final: true);
}
$and = $this->and_filtro_fecha(txt: $filtro_rango_sql);
if(errores::$error){
return $this->error->error(mensaje:'error al integrar and ',data: $and);
}
$filtro_rango_sql.= $and.$condicion;
return $filtro_rango_sql;
}