Segunda parte de cambios en candidatos

git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk/src@83 e2b1556b-49f8-d141-9351-52d6861a72d9
This commit is contained in:
roberto 2011-06-01 18:24:45 +00:00
parent 3b468043b7
commit d79e2bb2f4
12 changed files with 611 additions and 142 deletions

View File

@ -11,6 +11,7 @@
include_once("BD.php");
include_once("Persona.php");
include_once("Automata.php");
include_once("ListaCapacidadesProfesionales.php");
class Candidato extends Persona {
@ -28,6 +29,10 @@ class Candidato extends Persona {
throw new Exception($error);
}
}
function getCapacidadesProfesionales(){
return new ListaCapacidadesProfesionales($this->getValor("oid"),"candidato");
}
function setCampo($nombre, $valor) {
//PERMISOS:
@ -119,7 +124,7 @@ class Candidato extends Persona {
*/
$sesion = $this->usuario->getValor("oid");
//Nos declaramos un array de estados eliminables:
$estados_eliminables = array(10, 20, 50, 40, 60);
$estados_eliminables = array("510","521","522","523","540");
if ($this->usuario->tieneRol(1) || $this->usuario->tieneRol(4)) {
$estado = $this->getValor("estado");
if (in_array($estado, $estados_eliminables)) {

View File

@ -0,0 +1,181 @@
<?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<EFBFBD>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<EFBFBD>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 _getTecnologias(){
$bd = new BD();
$consulta = "";
$consulta = "SELECT CPT.id_capacidad, CPT.id_perfil_tecnico, 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"];
// $consulta = $consulta. " and CPT.id_perfil_tecnico = ". $this->campos["id_perfil_tecnico"];
$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)";
$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<EFBFBD>a en la base de datos.
*/
private function addTecnologia($id_tecnologia,$meses){
$id_capacidad = $this->campos["id"];
$id_perfil_tecnico = $this->campos["id_perfil_tecnico"];
if(!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_perfil_tecnico, id_tecnologia, meses) VALUES('$id_capacidad', '$id_perfil_tecnico', '$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<EFBFBD>n entre una tecnolog<EFBFBD>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'];
$bd = new BD();
$bd->execQuery($consulta);
}
}
?>

View File

@ -0,0 +1,40 @@
<?php
/*
* Clase Lista de capacidades profesionales
*
* Contiene la lista de capacidades profesionales de una entidad (Candidato/Solicitud de oferta)
*
*
*/
include_once("BD.php");
include_once("CapacidadProfesional.php");
class ListaCapacidadesProfesionales{
public $capacidad = array();
function ListaCapacidadesProfesionales($id, $tipo){
$bd = new BD();
$consulta = "";
$tipo_capacidad = $tipo;
$consulta = "select id from capacidades ";
switch ($tipo_capacidad) {
case "candidato": $consulta = $consulta. "WHERE id_usuario = ".$id; break;
case "solicitud": $consulta = $consulta. "WHERE id_solicitud = ".$id; break;
}
$resultado = $bd->execQuery($consulta);
//Procesamos las capacidades
if (mysql_num_rows($resultado) != 0) {
while ($row = mysql_fetch_array($resultado)) {
$this->capacidad[] = new CapacidadProfesional($row['id'], $tipo_capacidad);
}
}
return $this->capacidad;
}
}
?>

View File

@ -126,7 +126,7 @@ class ListaOfertas {
// Si viene ya el candidato indicado, hay que cambiarlo de estado
if (array_key_exists("candidato", $campos)) {
$ofertaNueva->colocarCandidato($campos["candidato"]);
$ofertaNueva->asignarCandidato($campos["candidato"]);
}
}
return $id;

View File

@ -31,14 +31,24 @@ class Oferta {
}
function eliminar() {
// eliminamos en la BD
//Antes de nada quitamos el candidato asociado a la oferta para que se haga la lógica que corresponda
$idCand = $this->getValor("candidato");
if (!empty($idCand)) {
if (!$this->quitarCandidato()) {
return false;
}
}
// eliminamos en la oferta de la BD
$consulta = "DELETE FROM candidato_pedido WHERE oid = ".$this->campos['oid'];
$bd = new BD();
if (!$bd->execQuery($consulta)) {
return false;
} else {
return true;
$mensaje = "Oferta eliminada";
$this->actualizarHistorial($mensaje);
return true;
}
}
@ -220,7 +230,7 @@ class Oferta {
* Devuelve una lista de candidatos disponibles para una oferta, que son todos menos los no disponibles #679 Peticion
*/
function getCandidatosDisponibles() {
return $this->getCandidatos("510,521,522,523,540,550");
return $this->getCandidatos("510,521,522,523,540,550,560");
}
/**
@ -249,22 +259,36 @@ class Oferta {
return $historial;
}
function getOfertasCandidato($oid) {
$consulta = "SELECT * FROM candidato_pedido WHERE candidato='$oid' ORDER BY fecha DESC";
$bd = new BD();
$resultado = $bd->execQuery($consulta);
return $resultado;
}
function quitarCandidato() {
$idCand = $this->getValor("candidato");
if (!empty($idCand)) {
$candidato = new Candidato($this->usuario, $idCand);
$estadoCand = $candidato->getValor("estado");
$numOfertasCandidato = $this->getOfertasCandidato($idCand);
switch ($estadoCand) {
//Disponible asignado exclusivo, Disponible asignado, No disponible.
//El estado del candidato no cambia si está asociado a alguna otra oferta, sino pasará a Disponible
case "560":
$candidato->transita("540", "");
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
$mensaje = "Eliminado el candidato ".$nombre_candidato;
$this->actualizarHistorial($mensaje);
return true;
break;
case "550":
case "530":
if (count($numOfertasCandidato) <= 1) {
$candidato->transita("540", "");
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
$mensaje = "El candidato ".$nombre_candidato." pasa a estado Disponible";
$this->actualizarHistorial($mensaje);
}
return true;
break;
//Pendiente de clasificar, Rechazados tipo1, tipo2, tipo3, Disponible.
//No podrá darse el caso ya que todo candidato asociado a una oferta debe estar Disponible asignado, Disponible asignado exclusivo, o no disponible
default:
$error = "[quitarCandidato]. El candidato tiene un estado no permitido ('" . $estadoCand . "')";
throw new Exception($error);
@ -272,13 +296,8 @@ class Oferta {
}
}
function colocarCandidato($idCandidato) {
function asignarCandidato($idCandidato) {
$idCand = $this->getValor("candidato");
dbug($idCand);
echo dbug('print');
if (!empty($idCand)) {
if (!$this->quitarCandidato()) {
return false;
@ -287,35 +306,38 @@ class Oferta {
$candidato = new Candidato($this->usuario, $idCandidato);
$estadoCand = $candidato->getValor("estado");
dbug($estadoCand);
echo dbug('print');
$numOfertasCandidato = $this->getOfertasCandidato($idCand);
switch ($estadoCand) {
//Disponible asignado, el estado del candidato no cambia, solo se asigna a la oferta y ya está.
case "560":
$this->setCampo("candidato", $idCandidato);
return true;
break;
//Pendiente de clasificar, Rechazados tipo1, tipo2, tipo3, Disponible. Todos los candidatos con alguno de estos estados cambiarán a Disponible asignado (560)
case "510":
case "521":
case "522":
case "523":
case "540":
if ($candidato->transita("560", "")) {
$this->setCampo("candidato", $idCandidato);
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
$mensaje = "Asignado el candidato ".$nombre_candidato;
$this->setCampo("candidato", $idCandidato);
if ($candidato->transita("560", "")){
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
$mensaje = "Asignado el candidato ".$nombre_candidato. "-->".$candidato->getValor("estado");
$this->actualizarHistorial($mensaje);
return true;
}
break;
case "560":
$this->setCampo("candidato", $idCandidato);
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
$mensaje = "Asignado el candidato ".$nombre_candidato;
$this->actualizarHistorial($mensaje);
return true;
break;
default:
$error = "El candidato tiene un estado no permitido ('" . $candidato->getValor("estado") . "')";
throw new Exception($error);
}
else {
$error = "ERROR: El candidato no ha podido cambiar de estado";
throw new Exception($error);
}
break;
//("550")Disponible asignado exclusivo,u otro que no exista
default:
$error = "El candidato tiene un estado no permitido ('" . $candidato->getValor("estado") . "')";
throw new Exception($error);
}
}

View File

@ -4,6 +4,7 @@ define("LOCALE", "idiomas/");
define("LOCALESET", "sp/");
include LOCALE.LOCALESET."lenguaje.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@ -22,7 +23,6 @@ include LOCALE.LOCALESET."lenguaje.php";
*
* Hay que tener cuidado porque todas las variables que se le pasan por post son agregadas.
*/
include("seguridad.php");
include("functions.php");
include_once("Objects/HTML.php");
$html=new HTML($locale);
@ -42,11 +42,16 @@ if(stripinput($_POST['action'])=="add"){
$camposQuitar["action"]=stripinput($_POST['action']);
$camposQuitar["id_candidato"]=stripinput($_POST['id_candidato']);
$camposQuitar["id_perfil_tecnico"]=stripinput($_POST['id_perfil_tecnico']);
include_once("Objects/Capacidad_profesional.php");
$Lista_capacidades = new Lista_capacidades_profesionales($id_candidato,"candidato");
$camposQuitar["id_perfil_funcional"]=stripinput($_POST['id_perfil_funcional']);
$camposQuitar["tecnologia"]=$_POST['tecnologia'];
$camposInsertar=array_diff_assoc($_POST,$camposQuitar);
$camposInsertar["id_usuario"]=$_POST['id_candidato'];
$camposInsertar["id_perfil_tecnico"]=$_POST['id_perfil_tecnico'][0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno
$camposInsertar["id_perfil_funcional"]=$_POST['id_perfil_funcional'][0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno
$vacio=array();
$vacio['0']="";
$_POST['tecnologia']=array_diff_assoc($_POST['tecnologia'],$vacio);
foreach($camposInsertar as $nombre_campo => $valor){
if($valor!="")
$arrayInsert[$nombre_campo]=$valor;
@ -55,7 +60,16 @@ if(stripinput($_POST['action'])=="add"){
// Insertamos la nueva capacidad
try{
$errorInsert=false;
$idCandidatoNew=$Lista_capacidades->addCapacidad($arrayInsert);
include_once("Objects/CapacidadProfesional.php");
$CapacidadProfesional = new CapacidadProfesional(-1,"candidato");
$idCapacidadNew= $CapacidadProfesional->addCapacidad($arrayInsert);
$CapacidadProfesional = new CapacidadProfesional($idCapacidadNew,"candidato");
if($idCapacidadNew!="-1"){
$CapacidadProfesional->addTecnologias($_POST['tecnologia']);
} else {
$tipomsg="error";
$mensaje="No se ha podido insertar";
}
} catch (Exception $e){
$tipomsg="error";
$mensaje=$e->getMessage();
@ -74,18 +88,41 @@ echo '<table align="center" width="100%">';
echo '<tr align="center">';
echo '<td ';
if(in_array("23",$errores)) echo " class=\"errorcampo\"";
echo ' textalign="right" '.$eper.'><div style="float:left ">'.$locale['121'].'&nbsp;</div><div style="float:left ">';
echo ' textalign="right"><div style="float:left ">'.$locale['121'].'&nbsp;</div><div style="float:left ">';
$auxiliar = '<option selected value="">'.$locale['ns'].'</option>';
echo $html->listaSelect("perfil","oid","id","id_perfil_tecnico",array("",$locale['ns']),$_POST['id_perfil_tecnico'],true,false,"1");
echo '</div></td></tr>';
echo '</div></td>';
//MESES_TECNICO
echo '<td textalign="right">'.$locale['Capacidades008'].'<br><input type="text" name="meses_tecnico" value="'.$_POST['meses_tecnico'].'" size="10" maxlength="10"><br></td>';
echo '</tr>';
/*
echo '<tr align="center">';
echo '<td textalign="right" '.$eper.'><div style="float:left ">'.$locale['122'].'&nbsp;&nbsp;&nbsp;</div><div style="float:left ">';
echo '<td colspan="2" textalign="right" ><div style="float:left ">'.$locale['122'].'&nbsp;&nbsp;&nbsp;</div><div style="float:left ">';
$auxiliar = '<option selected value="">'.$locale['ns'].'</option>';
echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$_POST['tecnologia'],true,true,"15");
echo '</div></td></tr>';
*/
echo '</table>';
echo '<div class="encabezado">'.$locale['Capacidades007'].'</div>';
echo '<table align="center" width="100%">';
echo '<td textalign="right"><div style="float:left ">'.$locale['Capacidades002'].'&nbsp;</div><div style="float:left ">';
$auxiliar = '<option selected value="">'.$locale['ns'].'</option>';
echo $html->listaSelect("perfil_funcional","oid","id","id_perfil_funcional",array("",$locale['ns']),$_POST['id_perfil_funcional'],true,false,"1");
echo '</div></td>';
//MESES_FUNCIONAL
echo '<td textalign="right">'.$locale['Capacidades008'].'<br><input type="text" name="meses_funcional" value="'.$_POST['meses_funcional'].'" size="10" maxlength="10"><br></td>';
echo '</tr>';
// CAMPO OBSERVACIONES
echo '<tr><td colspan="2" align="center">'.$locale['135'].'<br><textarea name="observaciones" rows="7" cols="50" style="overflow: auto;width:100%; height:100px"">'.$_POST['observaciones'].'</textarea></td></tr>';
echo '</table>';

View File

@ -1,57 +1,46 @@
<?php
/* Devuelve la lista de capacidades
* $id será el id_usuario o id_solicitud
* $tipo candidato, solicitud
* */
function lista_capacidades($id_candidato, $tipo){
include LOCALE.LOCALESET."lenguaje.php";
include_once("Objects/Capacidad_profesional.php");
$lista_capacidades = new Lista_capacidad_profesional($id_candidato,$tipo);
print_r($lista_capacidades->capacidad[0]->campos);
/*
if(count($lista_capacidades) > 0){
echo "<table width='100%'>";
//echo $lista_capacidad->capacidad[0]->getValor("meses_tecnico");
echo "<tr class='encabezado'><td>".$locale['2014']."</td><td>".$locale['1524']."</td><td>".$locale['203']."</td><td>".$locale['Capacidades002']."</td><td>".$locale['562']."</td></tr>";
// for($i=1;$i<=count($lista_capacidades);$i++){
/* Devuelve vista de la lista de capacidades profesionales pasada por parametro
*/
/*
echo "<tr><td></td>";
echo "<td>".$capacidad->getValor("perfil_tecnico")."&nbsp;&nbsp;&nbsp;(".$capacidad->getValor("meses_tecnico")."&nbsp;meses)</td>";
echo "<td>"; echo lista_tecnologias($capacidad->getValor("id"), $capacidad->getValor("id_perfil_tecnico"));
echo "</td>";
echo "<td>".$capacidad->getValor("perfil_funcional")."&nbsp;&nbsp;&nbsp;(".$capacidad->getValor("meses_funcional")."&nbsp;meses)</td>";
echo "<td>".$capacidad->getValor("observaciones")."</td></tr>";
function VerListaCapacidadesProfesionales($ListaCapacidadesProfesionales){
include LOCALE.LOCALESET."lenguaje.php";
}
echo "</table>";
} else {
echo "<p>".$locale['138']."</p>";
}
*/
}
if(count($ListaCapacidadesProfesionales->capacidad) > 0){
echo "<table width='100%'>";
echo "<tr class='encabezado'>";
echo "<td>".$locale['2014']."</td>";
echo "<td>".$locale['1524']."</td>";
echo "<td>".$locale['203']."</td>";
echo "<td>".$locale['Capacidades002']."</td>";
echo "<td>".$locale['562']."</td></tr>";
function lista_tecnologias($id_capacidad, $id_perfil_tecnico){
include LOCALE.LOCALESET."lenguaje.php";
$consulta = "SELECT CPT.id_capacidad, CPT.id_perfil_tecnico, 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 = ". $id_capacidad;
$consulta = $consulta. " and CPT.id_perfil_tecnico = ". $id_perfil_tecnico;
$resultado = mysql_query($consulta);
$num = @mysql_num_rows($resultado);
if($num > 0){
while($rows = @mysql_fetch_array($resultado)){
echo $rows["id"]. "&nbsp;&nbsp;&nbsp;(". $rows["meses"]. "&nbsp;meses)<br>";
}
} else {
echo "-";
}
for($i=0;$i<count($ListaCapacidadesProfesionales->capacidad);$i++){
$campos = $ListaCapacidadesProfesionales->capacidad[$i]->getCampos();
$tecnologias = $ListaCapacidadesProfesionales->capacidad[$i]->getTecnologias();
echo "<tr>";
echo "<td><a href=\"\" onclick=\"if(popup('gestionCapacidadProfesional.php?id=".$campos["id"]."', 'notes')) window.location.reload()\"><img src=\"css/edit.png\" title=". $locale['Capacidades009'] ."\"/></a>";
//
echo "</td>";
echo "<td>".$campos["perfil_tecnico"]."&nbsp;&nbsp;&nbsp;(".$campos["meses_tecnico"]."&nbsp;meses)</td>";
echo "<td>";
for($j=0;$j<count($tecnologias);$j++){
echo $tecnologias[$j]["id"]. "&nbsp;&nbsp;&nbsp;(". $tecnologias[$j]["meses"]. "&nbsp;meses)<br>";
}
echo "</td>";
echo "<td>".$campos["perfil_funcional"]."&nbsp;&nbsp;&nbsp;";
if ($campos["meses_funcional"] > 0)
echo "(".$campos["meses_funcional"]."&nbsp;meses)";
echo "</td><td>".$campos["observaciones"]."</td></tr>";
}
echo "</table>";
} else {
echo "<p>".$locale['Capacidades006']."</p>";
}
}
?>

View File

@ -0,0 +1,222 @@
<?php
//FICHERO DE IDIOMAS
define("LOCALE", "idiomas/");
define("LOCALESET", "sp/");
include LOCALE.LOCALESET."lenguaje.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $locale['Capacidades004'];?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="shortcut icon" href="css/favicon.ico">
<link rel="stylesheet" type="text/css" href="css/style.css" />
<link rel="stylesheet" type="text/css" href="css/tablas.css" />
</head>
<body>
<?php
/**
* Página que ofrece un formulario para agregar capacidades profesionales
*
* Hay que tener cuidado porque todas las variables que se le pasan por post son agregadas.
*/
include("functions.php");
include_once("Objects/HTML.php");
include_once("Objects/CapacidadProfesional.php");
$html=new HTML($locale);
$action="";
if($_POST['action']!=""){
$action=$_POST['action'];
} else {
if($_GET['action']!=""){
$action=$_GET['action'];
}
}
$id_capacidad="";
if($_POST['id']!=""){
$id_capacidad=$_POST['id'];
} else {
if($_GET['id']!=""){
$id_capacidad=$_GET['id'];
}
}
$errores=array();
$capacidad=new CapacidadProfesional($id_capacidad,"candidato");
$camposCapacidad = $capacidad->getCampos();
//echo "0.clase> ".$id_capacidad ."id_perfil_funcional>".$camposCapacidad['id_perfil_funcional'];
switch ($action) {
case "edit":
/*{ $perfil = stripinput($_POST["perfil"]);
$meses_tecnico = stripinput($_POST["meses_tecnico"]);
$tecnologia = $_POST["tecnologia"];
$perfil_funcional = stripinput($_POST["perfil_funcional"]);
$meses_funcional = stripinput($_POST["meses_funcional"]);
$meses_observaciones = stripinput($_POST["observaciones"]);
*/
//VERIFICAR
if(count($errores)==0){
$arrayInsert=array();
$camposQuitar=array();
$camposQuitar["action"]=stripinput($_POST['action']);
$camposQuitar["id_perfil_tecnico"]=stripinput($_POST['id_perfil_tecnico']);
$camposQuitar["id_perfil_funcional"]=stripinput($_POST['id_perfil_funcional']);
$camposQuitar["tecnologia"]=$_POST['tecnologia'];
$camposInsertar=array_diff_assoc($_POST,$camposQuitar);
$camposInsertar["id_perfil_tecnico"]=$_POST['id_perfil_tecnico'][0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno
$camposInsertar["id_perfil_funcional"]=$_POST['id_perfil_funcional'][0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno
$vacio=array();
$vacio['0']="";
$_POST['tecnologia']=array_diff_assoc($_POST['tecnologia'],$vacio);
foreach($camposInsertar as $nombre_campo => $valor){
if($valor!="")
$arrayInsert[$nombre_campo]=$valor;
}
// Modificamos la capacidad profesional
try{
$errorInsert=false;
$capacidad->modificarCapacidad($arrayInsert);
$tec = array();
$tec = $_POST['tecnologia'];
$tec_aux = $capacidad->getTecnologias();
foreach ($tec_aux as $fila){
$tec[]=$fila["id_tecnologia"];
}
for ($i=0; $i < count($tec); $i++){
$caption="meses_".$tec[$i];
$tec[$i]=$tec[$i]."-".$_POST[$caption];
}
print_r ($tec);
$capacidad->addTecnologias($tec);
//Es para que refreque los datos ya que al asignar lo que hace es hacer una copia de la clase y no asignacion de punteros
$capacidad = new CapacidadProfesional($id_capacidad,"candidato");
$camposCapacidad = $capacidad->getCampos();
$mensaje=$locale['Capacidades010'];
$tipomsg="ok";
} catch (Exception $e){
$tipomsg="error";
$mensaje=$e->getMessage();
}
} else {
$tipomsg="error";
$mensaje=$errores_persona;
}
break;
case "dellTec":
echo ">>>>>ENTRO EN dellTEC";
$idCap=$_GET['id_cap'];
$idTec=$_GET['id_tec'];
$capacidad->removeTecnologia($idCap, $idTec);
//Es para que refreque los datos ya que al asignar lo que hace es hacer una copia de la clase y no asignacion de punteros
$capacidad = new CapacidadProfesional($idCap,"candidato");
$camposCapacidad = $capacidad->getCampos();
$mensaje=$locale['1064'];
$tipomsg="ok";
break;
default:
break;
}
echo "<h2>".$locale['Capacidades011']."</h2>";
if($mensaje!=""){
// Mostramos el mensaje
echo "<div class=\"aviso ".$tipomsg."\">".$mensaje."</div>";
}
echo $locale['286'];
echo "<form action=\"gestionCapacidadProfesional.php\" method=\"POST\" enctype=\"multipart/form-data\">";
echo "<input type=\"hidden\" name=\"action\" value=\"edit\" />";
echo "<input type=\"hidden\" name=\"id\" value=\"".$camposCapacidad['id']."\" />";
echo '<div class="encabezado">'.$locale['Capacidades005'].'</div>';
echo '<table align="center" width="100%">';
echo '<tr align="center">';
echo '<td ';
if(in_array("23",$errores)) echo " class=\"errorcampo\"";
echo ' textalign="right"><div style="float:left ">'.$locale['121'].'&nbsp;</div><div style="float:left ">';
echo $html->listaSelect("perfil","oid","id","id_perfil_tecnico",array("",$locale['ns']),array($camposCapacidad['id_perfil_tecnico'],""),true,false,"1");
echo '</div></td>';
//MESES_TECNICO
echo '<td textalign="right">'.$locale['Capacidades008'].'<br><input type="text" name="meses_tecnico" value="'.$camposCapacidad['meses_tecnico'].'" size="10" maxlength="10"><br></td>';
echo '</tr>';
echo '<tr align="center">';
echo '<td colspan="2" textalign="right" ><div style="float:left ">'.$locale['122'].'&nbsp;&nbsp;&nbsp;</div><div style="float:left ">';
$tecnologias=$capacidad->getTecnologias();
$arrayseleccion=array();
foreach ($tecnologias as $tecnologia) {
$arrayseleccion[] = array($tecnologia['id_tecnologia'], $tecnologia['id']);
echo $tecnologia['id']." <a href=\"gestionCapacidadProfesional.php?id_cap=".$camposCapacidad['id']."&action=dellTec&id_tec=".$tecnologia['id_tecnologia']."\">Borrar</a><br />";
echo '<input type="text" name="meses_'.$tecnologia["id_tecnologia"].'" value="'.$tecnologia['meses'].'" size="10" maxlength="10">';
}
echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$arrayseleccion,true,true,"15");
echo '</div></td></tr>';
/*
echo '<tr align="center">
<td textalign="right">'.$locale['122'].'</td><td align="left">';
$tecnologias=$candidato->getTecnologias();
$keytecnologias=array_values($tecnologias);
// Mostramos la lista para borrar
foreach ($tecnologias as $nombre =>$valor) {
echo $nombre." <a href=\"gestion_candidato.php?oid=".$candidato->getValor("oid")."&action=dellTec&id=".$valor."\">Borrar</a><br />";
}
echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$candidato->getTecnologias(),false,true,"15");
echo '</td>
</tr>';
*/
echo '</table>';
echo '<div class="encabezado">'.$locale['Capacidades007'].'</div>';
echo '<table align="center" width="100%">';
echo '<td textalign="right"><div style="float:left ">'.$locale['Capacidades002'].'&nbsp;</div><div style="float:left ">';
echo $html->listaSelect("perfil_funcional","oid","id","id_perfil_funcional",array("",$locale['ns']),array($camposCapacidad['id_perfil_funcional'],""),true,false,"1");
echo '</div></td>';
//MESES_FUNCIONAL
echo '<td textalign="right">'.$locale['Capacidades008'].'<br><input type="text" name="meses_funcional" value="'.$camposCapacidad['meses_funcional'].'" size="10" maxlength="10"><br></td>';
echo '</tr>';
// CAMPO OBSERVACIONES
echo '<tr><td colspan="2" align="center">'.$locale['135'].'<br><textarea name="observaciones" rows="7" cols="50" style="overflow: auto;width:100%; height:100px"">'.$camposCapacidad['observaciones'].'</textarea></td></tr>';
echo '</table>';
echo '<input type="submit" value="'.$locale['gu'].'" class="button">';
echo "</form>";
?>
</body>

View File

@ -459,7 +459,8 @@ echo '</tr></table>';
///////////////////////////
echo '<input language="javascript" type="button" value="'.$locale['Capacidades003'].'" class="button" onclick="if(popup(\'addCapacidadProfesional.php?id_candidato='.$candidato->getValor("oid").'\', \'notes\')) window.location.reload()">';
echo '<div class="encabezado">'.$locale['Capacidades001'].'</div>';
lista_capacidades(8,'candidato');
$CapacidadesProfesionales = $candidato->getCapacidadesProfesionales();
VerListaCapacidadesProfesionales($CapacidadesProfesionales);
@ -476,40 +477,6 @@ echo '<input type="hidden" name="MAX_FILE_SIZE" value="10000000"><td colspan="6"
echo '<input name="userfile" type="file">';
echo '</td></tr></table>';
/*
echo '<td ';
if(in_array("23",$errores)) echo " class=\"errorcampo\"";
echo ' textalign="right" '.$eper.'><div style="float:left ">'.$locale['121'].'</div><div style="float:left ">';
$auxiliar = '<option selected value="">'.$locale['ns'].'</option>';
$perfiles=$candidato->getPerfiles();
$keyidiomas=array_values($perfiles);
// Mostramos la lista para borrar
foreach ($perfiles as $nombre =>$valor) {
echo $nombre." <a href=\"gestion_candidato.php?oid=".$candidato->getValor("oid")."&action=dellPer&id=".$valor."\">Borrar</a><br />";
}
echo $html->listaSelect("perfil","oid","id","perfil",array("",$locale['ns']),$candidato->getPerfiles(),false,true,"15");
echo '</div></td>';
*/
/*
echo '<tr align="center">
<td textalign="right">'.$locale['122'].'</td><td align="left">';
$tecnologias=$candidato->getTecnologias();
$keytecnologias=array_values($tecnologias);
// Mostramos la lista para borrar
foreach ($tecnologias as $nombre =>$valor) {
echo $nombre." <a href=\"gestion_candidato.php?oid=".$candidato->getValor("oid")."&action=dellTec&id=".$valor."\">Borrar</a><br />";
}
echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$candidato->getTecnologias(),false,true,"15");
echo '</td>
</tr>';
*/
echo '<div class="encabezado">'.$locale['1552'].'</div>';
?>

View File

@ -152,6 +152,12 @@ $locale['Capacidades002'] = "Perfil funcional";
$locale['Capacidades003'] = "Nueva capacidad profesional";
$locale['Capacidades004'] = "CAPACIDAD PROFESIONAL";
$locale['Capacidades005'] = "CAPACIDAD T&Eacute;CNICA";
$locale['Capacidades006'] = "No tiene capacidades profesionales";
$locale['Capacidades007'] = "CAPACIDAD FUNCIONAL";
$locale['Capacidades008'] = "meses";
$locale['Capacidades009'] = "Editar capacidad";
$locale['Capacidades010'] = "Se ha modificado el candidato correctamente";
$locale['Capacidades011'] = "Editando Capacidad Profesional";
//Historial:
$locale['150'] = "Modificados: ";

View File

@ -143,9 +143,9 @@ echo '<div id="ContTabul">';
?><tr style='background-color: <?php echo $color; ?>'>
<td align="center"><a href="gestion_candidato.php?oid=<?php echo $pedidoAct->getValor("oid"); ?>"><img src="css/edit.png" title="<?php echo $locale['1580']; ?>"/></a></td>
<?php
// Sólo el Administrador puede eliminar para estados 10,20,50,40,60
$estadoSiEliminar=array("510","520","522","523","530", "540");
if(($usuario->tieneRol("1") || $usuario->tieneRol("4")) && (in_array($pedidoAct->getValor("estado"),$estadoSiEliminar))){
// Sólo se puede eliminar candidatos en los siguientes estados
$estadoSiEliminar=array("510","521","522","523","540");
if(in_array($pedidoAct->getValor("estado"),$estadoSiEliminar)){
?>
<td align="center"><a href="#" onclick="eliminarCandidato('eliminar_candidato.php?oid=<?php echo $pedidoAct->getValor("oid"); ?>&byEstado=<?PHP echo $tipoPedidos; ?>')" ><img src="css/eliminar.png" title="<?php echo $locale['1581']; ?>"/></a></td>
<?php

View File

@ -38,7 +38,7 @@ if (!empty($action)) {
if (!empty($_GET['idCand'])) {
try {
$idCand = $_GET['idCand'];
$estado = $oferta->colocarCandidato($idCand);
$estado = $oferta->asignarCandidato($idCand);
if ($estado) {
$tipo = "ok";