git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk/src@94 e2b1556b-49f8-d141-9351-52d6861a72d9
198 lines
6.2 KiB
PHP
198 lines
6.2 KiB
PHP
<?php
|
||
/*
|
||
* Clase Capacidad Profesional
|
||
*
|
||
* Contiene toda la información relativa a la capacidad profesional.
|
||
*
|
||
*
|
||
*/
|
||
include_once("BD.php");
|
||
|
||
class CapacidadProfesional{
|
||
|
||
private $tipo_capacidad; /* Esta propiedad de la clase nos informará si estamos ante una capadidad profesional de candidato o de solicitud*/
|
||
protected $campos = array();
|
||
protected $tecnologias = array();
|
||
|
||
|
||
function CapacidadProfesional($id, $tipo){
|
||
$this->tipo_capacidad = $tipo;
|
||
$this->_getCampos($id);
|
||
//Ahora recuperamos la lista de tecnologías que tendrá en perfil tecnico de la capacidad, si las tubiera
|
||
$this->_getTecnologias();
|
||
}
|
||
|
||
/**
|
||
* Devuelve una lista de tecnolog<6F>as asociadas a la capacidad
|
||
* OJO ESTA TABLA TAMBIEN GUARDA EL ID_PERFIL_TECNICO POR SI EN UN FUTURO, SE REQUIERE QUE UNA CAPACIDAD TENGA VARIOS PERFILES TECNICOS
|
||
*/
|
||
private function _getCampos($id){
|
||
$bd = new BD();
|
||
$consulta = "";
|
||
$consulta = "select C.id, C.id_usuario, C.id_solicitud, C.id_perfil_tecnico, C.id_perfil_funcional, C.meses_tecnico, C.meses_funcional, C.observaciones, ";
|
||
$consulta = $consulta . "PT.id as perfil_tecnico, PT.abrev, PF.id as perfil_funcional, PF.abrev ";
|
||
$consulta = $consulta . "from capacidades as C left join perfil as PT on (PT.oid = C.id_perfil_tecnico) ";
|
||
$consulta = $consulta . "left join perfil_funcional as PF on (PF.oid = C.id_perfil_funcional) ";
|
||
$consulta = $consulta . "WHERE (C.id =". $id .")";
|
||
$resultado = $bd->execQuery($consulta);
|
||
if (mysql_num_rows($resultado) != 0)
|
||
$this->campos = mysql_fetch_array($resultado);
|
||
}
|
||
|
||
/**
|
||
* Devuelve una lista de tecnolog<6F>as asociadas a la capacidad
|
||
* (LO QUITAMOS)OJO ESTA TABLA TAMBIEN GUARDA EL ID_PERFIL_TECNICO POR SI EN UN FUTURO, SE REQUIERE QUE UNA CAPACIDAD TENGA VARIOS PERFILES TECNICOS
|
||
*/
|
||
private function _getTecnologias(){
|
||
$bd = new BD();
|
||
$consulta = "";
|
||
$consulta = "SELECT CPT.id_capacidad, CPT.id_tecnologia, CPT.meses, T.id ";
|
||
$consulta = $consulta. "FROM capacidades_perfil_tecnologias as CPT ";
|
||
$consulta = $consulta. "left join tecnologia as T on (T.oid = CPT.id_tecnologia) ";
|
||
$consulta = $consulta. "where CPT.id_capacidad = ". $this->campos["id"];
|
||
$resultado = $bd->execQuery($consulta);
|
||
if (mysql_num_rows($resultado) != 0) {
|
||
$this->tecnologias = null;
|
||
while ($row = mysql_fetch_array($resultado)) {
|
||
$this->tecnologias[] = $row;
|
||
}
|
||
}
|
||
}
|
||
|
||
function getCampos(){
|
||
return $this->campos;
|
||
}
|
||
|
||
/**
|
||
* Inserta una nueva capacidad profesional a la lista de capacidades.
|
||
* @param campos - datos de la capacidad.
|
||
*/
|
||
function addCapacidad($campos) {
|
||
$inserto = "";//,id_solicitud,id_perfil_tecnico, id_perfil_funcional, meses_tecnico, meses_funcional, observaciones";
|
||
$valores = ""; //, $fecha, $fecha";
|
||
|
||
//Procesamos los datos
|
||
$i=1;
|
||
foreach($campos as $key => $value){
|
||
if ($i>1) {
|
||
$inserto .= ",";
|
||
$valores .= ",";
|
||
}
|
||
$inserto .= " $key";
|
||
$valores .= " '$value'";
|
||
$i++;
|
||
}
|
||
|
||
//Insertamos en la BD
|
||
$consulta = "INSERT INTO capacidades ($inserto) VALUES ($valores)";
|
||
//echo $consulta;
|
||
$bd = new BD();
|
||
if(!$bd->execQuery($consulta)){
|
||
$error = "Campos de la capacidad incorrectos. Por favor, avise al webmaster de este error.";
|
||
throw new Exception($error);
|
||
return false;
|
||
}
|
||
$id = mysql_insert_id();
|
||
return $id;
|
||
}
|
||
|
||
function getTecnologias(){
|
||
return $this->tecnologias;
|
||
}
|
||
|
||
|
||
/**
|
||
* Asocia una nueva tecnolog<6F>a en la base de datos.
|
||
*/
|
||
private function addTecnologia($id_tecnologia,$meses){
|
||
$id_capacidad = $this->campos["id"];
|
||
if(($id_tecnologia>0) && (!in_array($id_tecnologia, $this->tecnologias))){
|
||
$consulta = "DELETE FROM capacidades_perfil_tecnologias where id_capacidad='$id_capacidad' and id_tecnologia='$id_tecnologia'";
|
||
$bd = new BD();
|
||
$bd->execQuery($consulta);
|
||
$consulta = "INSERT INTO capacidades_perfil_tecnologias (id_capacidad, id_tecnologia, meses) VALUES('$id_capacidad', '$id_tecnologia', '$meses')";
|
||
//echo $consulta;
|
||
$bd = new BD();
|
||
if($bd->execQuery($consulta)){
|
||
$mensaje = "Nueva tecno: $nombre_tecno";
|
||
// $this->actualizarHistorial($mensaje);
|
||
$this->_getTecnologias(); //Refrescamos la lista
|
||
$this->listaTecnologias[$nombre_tecno] = $id;
|
||
}else{
|
||
return false;
|
||
}
|
||
}else{
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
function addTecnologias($array){
|
||
if(gettype($array) == "array"){
|
||
foreach($array as $elem){
|
||
$id=substr($elem, 0, stripos($elem, "-"));
|
||
$meses=substr($elem, (stripos($elem, "-")+1), strlen($elem));
|
||
$this->addTecnologia($id,$meses);
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Elimina la asociaci<63>n entre una tecnolog<6F>a y la capacidad profesional.
|
||
*/
|
||
function removeTecnologia($idCap,$idTec){
|
||
$bd = new BD();
|
||
$consulta = "DELETE FROM capacidades_perfil_tecnologias WHERE id_capacidad = '".$idCap."' and id_tecnologia = '".$idTec."'";
|
||
if($bd->execQuery($consulta)){
|
||
$this->_getTecnologias();
|
||
}else{
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
|
||
/**
|
||
* Asigna nuevos campos a la persona.
|
||
* @param array - lista de campos a asignar de la forma campo => valor.
|
||
*/
|
||
function modificarCapacidad($array){
|
||
$consulta = "UPDATE capacidades SET ";
|
||
$i = 0;
|
||
foreach($array as $key => $value){
|
||
if ($i > 0)
|
||
$consulta .= ", ";
|
||
$consulta .= $key ."= '". $value ."'";
|
||
$i++;
|
||
}
|
||
// $fecha = "'".date('Y'."-".'m'."-".'d')."'";
|
||
// $consulta .= " fecha_modificacion = $fecha ";
|
||
$consulta .= " WHERE id=". $this->campos['id'];
|
||
//echo $consulta;
|
||
$bd = new BD();
|
||
$bd->execQuery($consulta);
|
||
}
|
||
|
||
/**
|
||
* Asigna nuevos campos a la persona.
|
||
* @param array - lista de campos a asignar de la forma campo => valor.
|
||
*/
|
||
function eliminar(){
|
||
//Eliminamos de la tabla detalle
|
||
$consulta = "DELETE FROM capacidades_perfil_tecnologias WHERE id_capacidad='".$this->campos["id"]."'";
|
||
//echo $consulta;
|
||
$bd = new BD();
|
||
$bd->execQuery($consulta);
|
||
$consulta = "DELETE FROM capacidades WHERE id='".$this->campos["id"]."'";
|
||
//echo $consulta;
|
||
if($bd->execQuery($consulta))
|
||
return true;
|
||
else
|
||
return false;
|
||
}
|
||
|
||
}
|
||
|
||
|
||
?>
|