diff --git a/src/Objects/Afinidad.php b/src/Objects/Afinidad.php index d0047b6..03b0f3c 100644 --- a/src/Objects/Afinidad.php +++ b/src/Objects/Afinidad.php @@ -35,11 +35,15 @@ private $provinciasPedido; /* Provincias en las que desea trabajar el empleado. */ - private $provinciaDeseada; + private $provinciasDeseadas; + + /* Provincias en las que NO desea trabajar el empleado. */ + private $provinciasNoDeseadas; + //Constructores function Afinidad($idiomasPedido, $idiomasUsuario, $tecnologiasPedido, - $tecnologiasUsuario, $perfilesPedido, $perfilesUsuario, $provinciasPedido, $provinciaDeseada){ + $tecnologiasUsuario, $perfilesPedido, $perfilesUsuario, $provinciasPedido, $provinciasDeseada, $provinciasNoDeseadas){ $this->idiomasPedido = $idiomasPedido; $this->idiomasUsuario = $idiomasUsuario; $this->tecnologiasPedido = $tecnologiasPedido; @@ -47,7 +51,8 @@ $this->perfilesPedido = $perfilesPedido; $this->perfilesUsuario = $perfilesUsuario; $this->provinciasPedido = $provinciasPedido; - $this->provinciaDeseada = $provinciaDeseada; + $this->provinciasDeseadas = $provinciasDeseadas; + $this->provinciasNoDeseadas = $provinciasNoDeseadas; } @@ -67,7 +72,7 @@ //Si no coincide alguna provincia deseada no nos vale. if($this->provinciasPedido != ""){ foreach($this->provinciasPedido as $provincia){ - if(in_array($provincia, $this->provinciaDeseada)){ + if(in_array($provincia, $this->provinciasDeseadas)){ $vL = $vL + 1; } } @@ -75,6 +80,18 @@ if($vL <= 0) return -1; + //Si coincide alguna provincia NO deseada no nos vale. + if($this->provinciasPedido != ""){ + foreach($this->provinciasPedido as $provincia){ + if(in_array($provincia, $this->provinciasNoDeseadas)){ + $vL = $vL - 1; + } + } + } + + if($vL <= 0) return -1; + + $afi = 0; //Afinidad con los perfiles: diff --git a/src/Objects/ListaPersonas.php b/src/Objects/ListaPersonas.php index 5401c2b..5fced30 100644 --- a/src/Objects/ListaPersonas.php +++ b/src/Objects/ListaPersonas.php @@ -142,7 +142,7 @@ include_once("Empleado.php"); return false; } - $fecha = "'".date(Y."-".m."-".d)."'"; + $fecha = "'".date('Y'."-".'m'."-".'d')."'"; $inserto = "tipo, fecha_modificacion, fecha_registro"; $valores = "'".$this->tipo."', $fecha, $fecha"; @@ -154,6 +154,7 @@ include_once("Empleado.php"); //Insertamos en la BD $consulta = "INSERT INTO usuarios ($inserto) VALUES ($valores)"; + echo $consulta; $bd = new BD(); if(!$bd->execQuery($consulta)){ $error = "Campos del candidato incorrectos. Por favor, avise al webmaster de este error."; diff --git a/src/Objects/Persona.php b/src/Objects/Persona.php index 1cf5d19..de78c7d 100644 --- a/src/Objects/Persona.php +++ b/src/Objects/Persona.php @@ -24,9 +24,12 @@ /* Lista de titulaciones*/ protected $listaTitulaciones = null; - /* Lista de localidades deseadas*/ + /* Lista de provincias deseadas*/ protected $listaProvinciasDeseadas = null; + /* Lista de provincias no deseadas*/ + protected $listaProvinciasNoDeseadas = null; + /* Lista de perfiles*/ protected $listaPerfiles = null; @@ -371,7 +374,7 @@ //Quitamos la �ltima coma /*if ($consulta{strlen($consulta) - 1} == ",") $consulta = substr($consulta,0,strlen($consulta) - 1);*/ - $fecha = "'".date(Y."-".m."-".d)."'"; + $fecha = "'".date('Y'."-".'m'."-".'d')."'"; $consulta .= " fecha_modificacion = $fecha "; $oid = $this->getValor("oid"); $consulta .= "WHERE oid='$oid'"; @@ -457,6 +460,21 @@ return $this->listaProvinciasDeseadas; } + /** + * Devuelve una lista de provincias deseadas asociadas al usuario. + */ + function getProvinciasNoDeseadas(){ + if($this->listaProvinciasNoDeseadas == null){ + $oid = $this->getValor("oid"); + $consulta = "SELECT l.oid, l.id FROM no_provincia_usuario lu, provincias l WHERE lu.oid_i = '$oid' and lu.provincia = l.oid"; + $bd = new BD(); + $this->listaProvinciasNoDeseadas = $bd->keyValueQuery($consulta, "id", "oid"); + } + + return $this->listaProvinciasNoDeseadas; + } + + /** * Devuelve una lista de perfiles asociadas al usuario. */ @@ -507,6 +525,15 @@ } } + function addProvinciasNoDeseadas($array){ + if(gettype($array) == "array"){ + foreach($array as $elem){ + $this->addProvinciaNoDeseada($elem); + } + $this->calculaAfinidad(); + } + } + function addPerfiles($array){ if(gettype($array) == "array"){ foreach($array as $elem){ @@ -620,6 +647,34 @@ return true; } + + /** + * Asocia una nueva provincia no deseada en la base de datos. + */ + private function addProvinciaNoDeseada($id){ + $oid = $this->getValor("oid"); + $this->getProvinciasNoDeseadas(); + if(!in_array($id, $this->listaProvinciasNoDeseadas)){ + $consulta = "SELECT id FROM provincias WHERE oid='$id'"; + $bd = new BD(); + $nombre_provincia = $bd->getCampo($consulta); + $consulta = "INSERT INTO no_provincia_usuario VALUES('$id', '$oid')"; + $bd = new BD(); + if($bd->execQuery($consulta)){ + $mensaje = "Nueva provincia no deseada: ".$nombre_provincia; + $this->actualizarHistorial($mensaje); + $this->listaProvinciasNoDeseadas[$nombre_provincia] = $id; + }else{ + return false; + } + }else{ + return false; + } + + return true; + } + + /** * Asocia un nuevo perfil en la base de datos. */ @@ -811,7 +866,7 @@ } /** - * Elimina la asociaci�n entre una localidad deseada y un usuario. + * Elimina la asociación entre una localidad deseada y un usuario. */ function removeProvinciaDeseada($id){ $oid = $this->getValor("oid"); @@ -843,6 +898,44 @@ return true; } + + /** + * Elimina la asociación entre una localidad no deseada y un usuario. + */ + function removeProvinciaNoDeseada($id){ + $oid = $this->getValor("oid"); + $this->getProvinciasNoDeseadas(); + if(in_array($id, $this->listaProvinciasNoDeseadas)){ + $consulta = "SELECT id FROM provincias WHERE oid='$id'"; + $bd = new BD(); + $nombre_provincia = $bd->getCampo($consulta); + $consulta = "DELETE FROM no_provincia_usuario WHERE provincia='$id' and oid_i='$oid'"; + $bd = new BD(); + if($bd->execQuery($consulta)){ + $mensaje = "Eliminada provincia no deseada: $nombre_provincia"; + $this->actualizarHistorial($mensaje); + $lista = $this->listaProvinciasNoDeseadas; + $this->listaProvinciasNoDeseadas = null; + foreach($lista as $key => $value){ + if($value != $id){ + $this->listaProvinciasNoDeseadas[$key] = $value; + } + } + }else{ + return false; + } + }else{ + return false; + } + + $this->calculaAfinidad(); + return true; + } + + + + + /** * Elimina la asociaci�n entre un perfil y un usuario. */ diff --git a/src/addCandidato.php b/src/addCandidato.php index 9f37852..3adf71d 100644 --- a/src/addCandidato.php +++ b/src/addCandidato.php @@ -51,6 +51,7 @@ if(stripinput($_POST['action'])=="add"){ $camposQuitar["idiomas"]=$_POST['idiomas']; $camposQuitar["titulaciones"]=$_POST['titulaciones']; $camposQuitar["provincia_deseada"]=$_POST['provincia_deseada']; + $camposQuitar["provincias_no_deseadas"]=$_POST['provincias_no_deseadas']; $camposQuitar["perfil"]=$_POST['perfil']; $camposQuitar["action"]=stripinput($_POST['action']); $camposQuitar["diaentre"]=stripinput($_POST['diaentre']); @@ -90,6 +91,13 @@ if(stripinput($_POST['action'])=="add"){ } //$candidatoNew->addLocalidadesDeseadas($_POST['localidad_deseada']); $candidatoNew->addProvinciasDeseadas($_POST['provincia_deseada']); + + if($_POST['provincias_no_deseadas']==""){ + $_POST['provincias_no_deseadas']=array(); + } + $candidatoNew->addProvinciasNoDeseadas($_POST['provincias_no_deseadas']); + + $candidatoNew->addPerfiles($_POST['perfil']); $candidatoNew->addCurriculum($_FILES['userfile']); header("Location: detalle_candidato.php?oid=".$idCandidatoNew); @@ -232,23 +240,41 @@ echo ''; echo '
+ listaSelect("provincias","oid","id","provincia_deseada",array("",$locale['ns']),"",true,true,"15"); ?> + listaSelect("provincias","oid","id","provincias_no_deseadas",array("",$locale['ns']),"",true,true,"15"); + + ?> + ![]() |
".$locale['138']."
"; } } /* Muestra la lista de currículums */ function ver_curriculums($oid, $tipo){ + include LOCALE.LOCALESET."lenguaje.php"; $consulta = "select * from curriculum_usuario where oid='$oid' order by fecha"; $resultado = mysql_query($consulta); $num = @mysql_num_rows($resultado); diff --git a/src/gestion_candidato.php b/src/gestion_candidato.php index dc5d4bc..10bd81b 100644 --- a/src/gestion_candidato.php +++ b/src/gestion_candidato.php @@ -77,6 +77,7 @@ switch ($action) { $camposQuitar["action"]=$_POST['action']; $camposQuitar["userfile"]=$_POST['userfile']; $camposQuitar["provincia_deseada"]=$_POST['provincia_deseada']; + $camposQuitar["provincias_no_deseadas"]=$_POST['provincias_no_deseadas']; $camposQuitar["perfil"]=$_POST['perfil']; $camposQuitar["historial"]=$_POST['historial']; $camposQuitar["procedenciaCV"]=$_POST['procedenciaCV']; @@ -101,10 +102,17 @@ switch ($action) { $candidato->addTecnologias($_POST['tecnologia']); $candidato->addIdiomas($_POST['idiomas']); $candidato->addTitulaciones($_POST['titulaciones']); + if($_POST['provincia_deseada']==""){ $_POST['provincia_deseada']=array(); } $candidato->addProvinciasDeseadas($_POST['provincia_deseada']); + + if($_POST['provincias_no_deseadas']==""){ + $_POST['provincias_no_deseadas']=array(); + } + $candidato->addProvinciasNoDeseadas($_POST['provincias_no_deseadas']); + $candidato->addPerfiles($_POST['perfil']); $candidato->addCurriculum($_FILES['userfile']); $mensaje=$locale['1583']; @@ -138,11 +146,17 @@ switch ($action) { $candidato->removeProvinciaDeseada($idAction); $mensaje=$locale['1089']; $tipomsg="ok"; - default: + break; + case "dellLocNoDes":$idAction=$_GET['id']; + $candidato->removeProvinciaNoDeseada($idAction); + $mensaje=$locale['5002']; + $tipomsg="ok"; + break; case "dellPer":$idAction=$_GET['id']; $candidato->removePerfil($idAction); $mensaje=$locale['1090']; $tipomsg="ok"; + break; default: break; } @@ -274,13 +288,14 @@ foreach ($perfiles as $nombre =>$valor) { echo ''; +// Provincia deseada echo '