src.where.value_coma - gamboamartin/where GitHub Wiki

value_coma

La función value_coma es una función privada que valida un valor y una cadena de valores SQL existente, y decide si es necesario agregar una coma (,) antes de concatenar el nuevo valor. Esta función asegura que el valor no esté vacío y determina si se debe agregar una coma para formar correctamente una lista de valores en una consulta SQL.

Signatura

private function value_coma(string $value, string $values_sql): array|stdClass

Parámetros

  • string $value:
    El valor que se va a agregar a la lista de valores SQL. Este valor debe ser una cadena no vacía.

  • string $values_sql:
    La cadena SQL existente que contiene los valores previamente agregados. Esta cadena se utiliza para determinar si se necesita agregar una coma antes de concatenar el nuevo valor.

Retorna

  • array|stdClass:
    Retorna un objeto stdClass que contiene el valor validado y una coma (coma) que se debe agregar antes del valor si es necesario. En caso de error, retorna un array de error generado por $this->error->error().

Explicación Detallada

  1. Limpieza y validación de los parámetros:

    • La función elimina los espacios en blanco al inicio y al final de las cadenas $value y $values_sql utilizando trim().
    • Si $value está vacío después de la limpieza, se genera un mensaje de error y se retorna un array con el mensaje de error.
  2. Determinación de la coma:

    • Si la cadena $values_sql no está vacía, la función determina que es necesario agregar una coma (,) antes de concatenar el nuevo valor, para separar correctamente los valores en la lista SQL.
  3. Creación del objeto stdClass:

    • La función crea un objeto stdClass que contiene:
      • value: El valor validado.
      • coma: Una coma (,) si es necesario agregarla antes del valor.
  4. Retorno del objeto:

    • La función retorna el objeto stdClass con el valor y la coma necesarios para formar la lista SQL correctamente.

Ejemplos

$value = '100';
$values_sql = "200, 300";

$resultado = $this->value_coma($value, $values_sql);

// Resultado esperado:
// Un objeto stdClass con los atributos:
// - value: "100"
// - coma: " ,"
// Un array de error si ocurre algún problema.

Código de la Función

private function value_coma(string $value, string $values_sql): array|stdClass
    {
        $values_sql = trim($values_sql);
        $value = trim($value);
        if($value === ''){
            return $this->error->error(mensaje: 'Error value esta vacio',data: $value, es_final: true);
        }

        $coma = '';
        if($values_sql !== ''){
            $coma = ' ,';
        }

        $data = new stdClass();
        $data->value = $value;
        $data->coma = $coma;
        return $data;
    }