<?php
/**
* Descripción del Modelo de Datos Cargos
*
* %%DESC_MODELO%%
*
* Licenciado bajo la Licencia Apache, Versión 2.0;
* Usted no puede usar este archivo excepto en conformidad con la Licencia.
* Usted puede obtener una copia de la Licencia en:
* http://www.php.net/license/3_01.txt.
* A menos que sea requerido por la ley aplicable o acordado por escrito, el software
* Distribuido bajo la licencia se distribuye en una "AS IS" o "COMO ESTA" BASE,
* SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, expresas o implícitas.
* Consulte la Licencia para los permisos y Limitaciones bajo la Licencia.
*
* @package Modelos\Datos\Cargos
* @author JUAN PABLO LLINAS RAMIREZ <jpllinas@ccsm.org.co>
* @author SICAM 20171025 <sicam32@ccsm.org.co>
* @copyright 2017 Cámara de Comercio de Santa Marta para el Magdalena
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @version 201712270953
* @link http://sicam.ccsm.org.co/docs/modelos/datos/Cargos
*/
class Cargos extends ModeloDatos {
public static function getAllCargosPorTipoCargo($tipoCargoID) {
$sqlQuery = CargosSQL::DATOS_BASICOS . " WHERE tipoCargoID=?; ";
return SicamDB::selectVariasFilas($sqlQuery, array($tipoCargoID));
}
public static function jefesInmediatos() {
$sqlQuery = "SELECT DISTINCT CamaraColaboradores.*, Personas.*, CargoJefe.* FROM CamaraCargos "
. "INNER JOIN CamaraColaboradores ON (CamaraCargos.cargoPERMISOS = CamaraColaboradores.colaboradorID) "
. "INNER JOIN Personas ON (CamaraColaboradores.personaID = Personas.personaID) "
. "INNER JOIN CamaraCargos AS CargoJefe ON (CamaraColaboradores.cargoID=CargoJefe.cargoID) ";
return SicamDB::selectVariasFilas($sqlQuery);
}
const ACTIVO = 'ACTIVO';
const DESACTIVO = 'DESACTIVO';
const SUSPENDIDO = 'SUSPENDIDO';
/**
* Recibe el Identificador del registro de Cargo y
* devuelve un objeto con sus datos.
* @param int $cargoID
* @return Objeto Cargo
*/
public static function datos($cargoID) {
$sqlQuery = CargosSQL::DATOS_BASICOS . " WHERE cargoID = ? ; ";
return SicamDB::selectUnaFila($sqlQuery, array($cargoID));
}
/**
* Recibe el Identificador del registro de Cargo y
* devuelve un objeto con sus datos completos con todas sus relacion.
* @param int $cargoID
* @return Objeto Cargo
*/
public static function datosCompletos($cargoID) {
$sqlQuery = CargosSQL::DATOS_COMPLETOS . " WHERE cargoID = ? ; ";
$Cargo = SicamDB::selectUnaFila($sqlQuery, array($cargoID));
//$Cargo->Items = Items::delCargo($cargoID);
//$Cargo->Usuario = Usuarios::datos($Cargo->cargoUSRCREO);
$Cargo->Encargado = Colaboradores::porCargo($cargoID);
$Cargo->Encargados = Colaboradores::enElCargo($cargoID);
return $Cargo;
}
/**
* Devuelve todos los registros de Cargos, según el estado.
* Si no se envia el estado devuelve todos los registros
* sin importar su estado.
* @param String $cargoESTADO
* @return Array de Objetos Cargos
*/
public static function todos($cargoESTADO = null) {
$datos = array();
$sqlQuery = CargosSQL::DATOS_BASICOS;
if (!is_null($cargoESTADO)) {
$sqlQuery .= " WHERE cargoESTADO = ? ";
array_push($datos, $cargoESTADO);
}
return SicamDB::selectVariasFilas($sqlQuery, $datos);
}
/**
* Devuelve los registros de Cargos en estado ACTIVO.
* @return Array de Objetos Cargos
*/
public static function activos() {
return self::todos(self::ACTIVO);
}
/**
* Recibe Todos los datos de necesarios para la creación de un nuevo
* registro de Cargos.
* @param int $categoriaID Identificador de la Categoria
* @param String $cargoCODIGO Código de Cargos
* @param String $cargoTITULO Titulo de Cargos
* @param Texto $cargoDESCRIPCION Descripción de Cargos
* @param Url $cargoURL Url del archivo asociado al Cargos
* @param String $cargoESTADO Estado del registro de Cargos
* @return int con el Identificador del Registro Cargos
*/
public static function guardar($categoriaID, $cargoCODIGO, $cargoTITULO, $cargoDESCRIPCION, $cargoURL, $cargoESTADO) {
$sqlQuery = CargosSQL::CREAR_REGISTRO;
return SicamDB::insertFila($sqlQuery, array(
$categoriaID, $cargoCODIGO, $cargoTITULO, $cargoDESCRIPCION,
$cargoURL, $cargoESTADO, Cliente::usuarioID()
)
);
}
/**
* Recibe los todos los datos del registro para ser actualizados, junto con
* el identificador del registro que se va ha actualizar.
* @param int $cargoID Identificador del Registro de Cargos
* @param int $categoriaID Identificador de la Categoria
* @param String $cargoCODIGO Código de Cargos
* @param String $cargoTITULO Titulo de Cargos
* @param Texto $cargoDESCRIPCION Descripción de Cargos
* @param Url $cargoURL Url del archivo asociado al Cargos
* @param String $cargoESTADO Estado del registro de Cargos
* @return int cantidad de registros actualziados en la operacion
*/
public static function actualizar($cargoID, $categoriaID, $cargoCODIGO, $cargoTITULO, $cargoDESCRIPCION, $cargoURL, $cargoESTADO) {
$sqlQuery = CargosSQL::ACTUALIZAR_REGISTRO;
return SicamDB::actualizarFila($sqlQuery, array(
$categoriaID, $cargoCODIGO,
$cargoTITULO, $cargoDESCRIPCION, $cargoURL,
$cargoESTADO, Cliente::usuarioID(), $cargoID
)
);
}
/**
* Recibe un identificador de Cargos y elimina el registro.
* @param int $cargoID Identificador del registro
* ha eliminar.
* @return int Cantidad de registros eliminados
*/
public static function eliminar($cargoID) {
$sqlQuery = CargosSQL::ELIMINAR_REGISTRO;
return SicamDB::actualizarFila($sqlQuery, array($cargoID));
}
/**
* Recibe un identificador de Cargos y reactiva el registro.
* @param int $cargoID Identificador del registro
* @return int Cantidad de registros reactivados
*/
public static function reactivar($cargoID) {
return self::cambiarEstado(self::ACTIVO, $cargoID);
}
/**
* Recibe un identificador y el Estado y actualiza el estado del registro
* @param String $cargoESTADO Nuevo estado del registro.
* @param int $cargoID Identificador del registro
* @return int Cantidad de registros desactivados
*/
public static function cambiarEstado($cargoESTADO, $cargoID) {
$sqlQuery = CargosSQL::ACUALIZAR_ESTADO;
return SicamDB::actualizarFila($sqlQuery, array($cargoESTADO, $cargoID));
}
/**
* Recibe un identificador de Cargos y desactiva el registro.
* @param int $cargoID Identificador del registro
* @return int Cantidad de registros desactivados
*/
public static function desactivar($cargoID) {
return self::cambiarEstado(self::DESACTIVO, $cargoID);
}
}
// Generado el 2017-12-27 09:53:00:000000