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�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�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�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�n entre una tecnolog�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; } } ?>