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_sql
y$condicion
utilizandotrim()
.
- 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_sql
no está vacío y$condicion
está vacía, la función genera un mensaje de error y retorna un array con el mensaje de error.
- Si
-
Generación del operador
AND
si es necesario:- La función llama a
and_filtro_fecha()
para obtener la cadenaAND
si$filtro_rango_sql
no 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_sql
con la cadenaAND
y la nueva$condicion
para 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_sql
que 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;
}