administrador.orm.adm_usuario.filtro.21.15.0 - gamboamartin/administrador GitHub Wiki

filtro

Este método se utiliza para generar un filtro basado en los datos de acción, grupo y sección.

Signatura

private function filtro(string $adm_accion, int $adm_grupo_id, string $adm_seccion): array

Parámetros

$adm_accion (string): La acción para la cual se desea aplicar el filtro.

$adm_grupo_id (int): El ID del grupo al que pertenecen los permisos que se desean filtrar.

$adm_seccion (string): La sección para la cual se desea aplicar el filtro.

Retorna

  • array: Retorna un array que contiene el filtro generado.

Explicación Detallada

  1. Validación de la acción:

    • Se utiliza la función trim() para eliminar espacios en blanco alrededor de la acción.
    • Se verifica si la acción está vacía. Si lo está, se retorna un mensaje de error utilizando el objeto error.
  2. Validación de la sección:

    • Se utiliza la función trim() para eliminar espacios en blanco alrededor de la sección.
    • Se verifica si la sección está vacía. Si lo está, se retorna un mensaje de error utilizando el objeto error.
  3. Validación del ID del grupo:

    • Se verifica si el ID del grupo es mayor que cero. Si no lo es, se retorna un mensaje de error utilizando el objeto error.
  4. Generación del filtro:

    • Se crea un array llamado $filtro que contendrá las condiciones del filtro.
    • Se asignan las condiciones del filtro basadas en los parámetros proporcionados y el estado activo de las entidades.
  5. Retorno:

    • Se retorna el array $filtro que contiene el filtro generado.

Ejemplos

// Ejemplo: Generación de un filtro para la consulta de permisos
$accion = 'editar';
$grupo_id = 1;
$seccion = 'usuarios';

$filtro_permisos = $objeto->filtro($accion, $grupo_id, $seccion);

echo "Filtro generado para la consulta de permisos:";
print_r($filtro_permisos);

Código de la Función

private function filtro(string $adm_accion, int $adm_grupo_id, string $adm_seccion): array
    {
        $adm_accion = trim($adm_accion);
        if($adm_accion === ''){
            return $this->error->error(mensaje: 'Error adm_accion esta vacia',data:  $adm_accion, es_final: true);
        }
        $adm_seccion = trim($adm_seccion);
        if($adm_seccion === ''){
            return $this->error->error(mensaje: 'Error adm_seccion esta vacia',data:  $adm_seccion, es_final: true);
        }

        if($adm_grupo_id <= 0){
            return $this->error->error(mensaje: 'Error adm_grupo_id debe ser mayor a 0',data:  $adm_grupo_id);
        }

        $filtro['adm_grupo.id'] = $adm_grupo_id;
        $filtro['adm_accion.descripcion'] = $adm_accion;
        $filtro['adm_grupo.status'] = 'activo';
        $filtro['adm_accion.status'] = 'activo';
        $filtro['adm_seccion.descripcion'] = $adm_seccion;
        $filtro['adm_seccion.status'] = 'activo';
        return $filtro;
    }