DepartamentoPDO
in package
Clase que gestiona la persistencia y operaciones de los Departamentos en la base de datos.
- Actúa como el modelo DAO (Data Access Object) para la entidad Departamento, encapsulando todas las consultas SQL necesarias para el mantenimiento de la tabla T02_Departamento.
Tags
Table of Contents
Methods
- altaDepartamento() : Departamento|null
- Registra un nuevo departamento en la base de datos (Alta Física).
- altaLogicaDepartamento() : bool
- Reactiva un departamento previamente dado de baja (Alta Lógica).
- bajaFisicaDepartamento() : bool
- Elimina un departamento permanentemente de la base de datos (Baja Física).
- bajaLogicaDepartamento() : bool
- Desactiva temporalmente un departamento en el sistema (Baja Lógica).
- buscaDepartamentoPorCod() : Departamento|null
- Busca un departamento específico utilizando su código identificador.
- buscaDepartamentosPorDesc() : array<string|int, Departamento>
- Busca departamentos cuya descripción contenga la cadena proporcionada.
- buscaDepartamentosPorDescEstadoPaginado() : array<string|int, Departamento>
- Obtiene un subconjunto de departamentos basado en filtros y parámetros de paginación.
- contarDepartamentosPorDescEstado() : int
- Calcula el número total de departamentos que coinciden con unos filtros dados.
- exportarDepartamentos() : array<string|int, mixed>
- Prepara y estructura la información de los departamentos para su exportación a JSON.
- importarDepartamentos() : bool
- Importa masivamente un conjunto de departamentos hacia la base de datos usando una Transacción.
- modificaDepartamento() : PDOStatement|bool
- Actualiza los datos modificables de un departamento existente.
- validaCodNoExiste() : bool
- Comprueba la existencia de un departamento a través de su código.
Methods
altaDepartamento()
Registra un nuevo departamento en la base de datos (Alta Física).
public
static altaDepartamento(string $codDepartamento, string $descDepartamento, float $volumenDeNegocio) : Departamento|null
- Inserta un registro en la tabla T02_Departamento estableciendo automáticamente la fecha de creación actual (NOW()) y dejando la fecha de baja en NULL (activo).
Parameters
- $codDepartamento : string
-
Código único del departamento (PK, 3 letras mayúsculas).
- $descDepartamento : string
-
Nombre o descripción del departamento.
- $volumenDeNegocio : float
-
Volumen de negocio económico.
Return values
Departamento|null —Devuelve el objeto Departamento instanciado si la inserción fue exitosa, o null si falló.
altaLogicaDepartamento()
Reactiva un departamento previamente dado de baja (Alta Lógica).
public
static altaLogicaDepartamento(string $codDepartamento) : bool
- Elimina la fecha de baja (la establece a NULL), restaurando el departamento al estado activo en el sistema.
Parameters
- $codDepartamento : string
-
Código del departamento a rehabilitar.
Return values
bool —True si se actualizó la fila correctamente, false en caso contrario.
bajaFisicaDepartamento()
Elimina un departamento permanentemente de la base de datos (Baja Física).
public
static bajaFisicaDepartamento(string $codDepartamento) : bool
Parameters
- $codDepartamento : string
-
Código del departamento a borrar.
Return values
bool —True si se eliminó alguna fila correctamente, false en caso contrario.
bajaLogicaDepartamento()
Desactiva temporalmente un departamento en el sistema (Baja Lógica).
public
static bajaLogicaDepartamento(string $codDepartamento) : bool
- En lugar de borrar el registro, actualiza el campo T02_FechaBajaDepartamento con la fecha y hora exacta de la solicitud (NOW()), ocultándolo de las consultas generales.
Parameters
- $codDepartamento : string
-
Código del departamento a dar de baja.
Return values
bool —True si se actualizó la fila correctamente, false en caso contrario.
buscaDepartamentoPorCod()
Busca un departamento específico utilizando su código identificador.
public
static buscaDepartamentoPorCod(string $codDepartamento) : Departamento|null
Parameters
- $codDepartamento : string
-
Código único del departamento (PK).
Return values
Departamento|null —Devuelve un objeto Departamento si lo encuentra, o null en caso contrario.
buscaDepartamentosPorDesc()
Busca departamentos cuya descripción contenga la cadena proporcionada.
public
static buscaDepartamentosPorDesc(string $descDepartamento) : array<string|int, Departamento>
- Realiza una consulta SQL utilizando el operador LIKE para coincidencias parciales. Si no se especifica cadena o está vacía, devuelve todos los departamentos.
Parameters
- $descDepartamento : string
-
Descripción a buscar (o parte de ella).
Return values
array<string|int, Departamento> —Array de objetos Departamento encontrados, o array vacío si no hay coincidencias.
buscaDepartamentosPorDescEstadoPaginado()
Obtiene un subconjunto de departamentos basado en filtros y parámetros de paginación.
public
static buscaDepartamentosPorDescEstadoPaginado(string $descDepartamento, string $estadoDepartamento, int $paginaActual) : array<string|int, Departamento>
- Combina la búsqueda por descripción y estado con cláusulas LIMIT y OFFSET para devolver únicamente los registros correspondientes a la página solicitada.
Parameters
- $descDepartamento : string
-
Cadena de texto para filtrar la descripción.
- $estadoDepartamento : string
-
Estado a filtrar ('alta', 'baja', o 'todos').
- $paginaActual : int
-
Número de la página solicitada por el usuario.
Return values
array<string|int, Departamento> —Array de objetos Departamento para la página actual.
contarDepartamentosPorDescEstado()
Calcula el número total de departamentos que coinciden con unos filtros dados.
public
static contarDepartamentosPorDescEstado(string $descDepartamento, string $estadoDepartamento) : int
- Esencial para construir sistemas de paginación precisos. Cuenta los registros filtrando tanto por coincidencia de texto como por su estado lógico.
Parameters
- $descDepartamento : string
-
Cadena de texto a buscar en la descripción.
- $estadoDepartamento : string
-
Estado para filtrar ('alta', 'baja', o 'todos').
Return values
int —Número total de registros coincidentes. Devuelve 0 en caso de error o ausencia.
exportarDepartamentos()
Prepara y estructura la información de los departamentos para su exportación a JSON.
public
static exportarDepartamentos([string $descDepartamento = "" ]) : array<string|int, mixed>
- Solicita los datos a la BBDD a través de los métodos de búsqueda existentes, iterando sobre los objetos recuperados para extraer sus valores puros a un array asociativo.
Parameters
- $descDepartamento : string = ""
-
(Opcional) Cadena de texto para filtrar por descripción. Por defecto vacío.
Return values
array<string|int, mixed> —Array multidimensional con la estructura de datos lista para codificar en formato JSON.
importarDepartamentos()
Importa masivamente un conjunto de departamentos hacia la base de datos usando una Transacción.
public
static importarDepartamentos(array<string|int, mixed> $aDepartamentos) : bool
- Toma los datos decodificados de un JSON, genera una colección estructurada de parámetros y delega su inserción transaccional a la clase DBPDO. Si la base de datos rechaza un solo registro (ej: clave primaria duplicada), se ejecuta un Rollback automático revirtiendo cualquier cambio previo.
Parameters
- $aDepartamentos : array<string|int, mixed>
-
Array asociativo extraído del fichero JSON con la información a importar.
Return values
bool —Devuelve true si la totalidad de los departamentos se han insertado correctamente. False en caso de error.
modificaDepartamento()
Actualiza los datos modificables de un departamento existente.
public
static modificaDepartamento(string $codDepartamento, string $descDepartamento, float $volumenDeNegocio) : PDOStatement|bool
- Permite modificar la descripción y el volumen de negocio referenciando el registro por su código.
Parameters
- $codDepartamento : string
-
Código del departamento a actualizar.
- $descDepartamento : string
-
Nueva descripción del departamento.
- $volumenDeNegocio : float
-
Nuevo volumen de negocio.
Return values
PDOStatement|bool —Devuelve el objeto PDOStatement evaluable como booleano para confirmar el éxito de la consulta.
validaCodNoExiste()
Comprueba la existencia de un departamento a través de su código.
public
static validaCodNoExiste(string $codDepartamento) : bool
- ATENCIÓN: A pesar del nombre del método, devuelve true si el departamento YA EXISTE en la base de datos (rowCount > 0). Útil para validaciones de claves duplicadas.
Parameters
- $codDepartamento : string
-
Código del departamento a buscar.
Return values
bool —True si el departamento existe en la BBDD, false si no existe.