Tarea #583 -> En candidatos añadir un campo que sea “Ubicaciones no deseadas”

git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk@44 e2b1556b-49f8-d141-9351-52d6861a72d9
This commit is contained in:
David Arranz 2011-05-04 14:28:18 +00:00
parent d745d42b80
commit 74418ecfda
12 changed files with 250 additions and 19 deletions

View File

@ -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:

View File

@ -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.";

View File

@ -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 <20>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<EFBFBD>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<EFBFBD>n entre un perfil y un usuario.
*/

View File

@ -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 '</td>';
echo '<tr>';
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 ">';
echo ' textalign="right" '.$eper.'><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","perfil",array("",$locale['ns']),$_POST['perfil'],true,true,"15");
echo '</div></td>
<td textalign="right"><div style="float:left ">'.$locale['1561'].'</div><div style="float:left ">';
echo '</div></td>';
// Provincia deseada
echo '<td textalign="right"><div style="float:left ">'.$locale['1561'].'&nbsp;</div><div style="float:left ">';
echo $html->listaSelect("provincias","oid","id","provincia_deseada",array("",$locale['ns']),$_POST['provincia_deseada'],true,true,"15");
echo '</div></td>';
// Provincia no deseada
echo '<td textalign="right"><div style="float:left ">'.$locale['5001'].'&nbsp;</div><div style="float:left ">';
echo $html->listaSelect("provincias","oid","id","provincias_no_deseadas",array("",$locale['ns']),$_POST['provincias_no_deseadas'],true,true,"15");
echo '</div></td>';
echo "<td></td>";
echo '</tr>';
echo '<tr>
<td colspan="3" align="center">'.$locale['135'].'<br><textarea name="observaciones" rows="7" cols="50" style="overflow: auto;width:100%; height:150px"">'.$_POST['observaciones'].'</textarea></td></tr><tr>';
echo '</tr></table>';
echo '<input type="submit" value="'.$locale['802'].'" class="button">';
// CURRICULUM
echo '<div class="encabezado">'.$locale['1549'].'</div>';
echo '<table align="center" width="100%">';

View File

@ -93,6 +93,25 @@ if (($condicion{strlen($condicion) - 3} == "o") && ($condicion{strlen($condicion
$condicion .= ",";
}
// Provincia no deseada
$puesto_provincia = false;
if(is_array($provincias_no_deseadas)){
foreach($provincias_no_deseadas as $provincia)
if ($provincia != "") {
if(!$puesto_provincia)
$tabla .= ",no_provincia_usuario";
$puesto_provincia = true;
$condicion .= "(no_provincia_usuario.provincia = '".$provincia."' and no_provincia_usuario.oid_i = usuarios.oid) or ";
}
}
//Quitamos el último or y ponemos una coma
if (($condicion{strlen($condicion) - 3} == "o") && ($condicion{strlen($condicion) - 2} == "r")){
$condicion = substr($condicion,0,strlen($condicion) - 3);
$condicion .= ",";
}
if ($seguridad_social != ""){
$condicion .= "usuarios.seguridad_social = '".$seguridad_social."',";

View File

@ -64,6 +64,7 @@ $idiomas = $_POST["idiomas"];
$titulaciones = $_POST["titulaciones"];
$pedidos = $_POST["pedidos"];
$perfil = $_POST["perfil"];
$provincias_no_deseadas = $_POST["provincias_no_deseadas"];
if(comprobar_permisos("APU")){
$permisos = "";

View File

@ -969,6 +969,24 @@ INSERT INTO `provincia_usuario` VALUES (8,1),(15,16),(15,17),(15,18),(8,31),(15,
/*!40000 ALTER TABLE `provincia_usuario` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `no_provincia_usuario`
--
DROP TABLE IF EXISTS `no_provincia_usuario`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `no_provincia_usuario` (
`provincia` int(10) unsigned NOT NULL,
`oid_i` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`provincia`,`oid_i`),
KEY `oid_i` (`oid_i`),
CONSTRAINT `no_provincia_usuario_ibfk_3` FOREIGN KEY (`provincia`) REFERENCES `provincias` (`oid`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `no_provincia_usuario_ibfk_4` FOREIGN KEY (`oid_i`) REFERENCES `usuarios` (`oid`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `provincias`
--

View File

@ -201,11 +201,23 @@ if(in_array("personales",$mostrarDetalle)){ ?>
<?php
$localidadesDeseadas=$persona->getProvinciasDeseadas();
$keylocalidades=array_values($localidadesDeseadas);
// Mostramos la lista para borrar
// Mostramos la lista
foreach ($localidadesDeseadas as $nombre =>$valor) {
echo $nombre.", ";
}
?>
<br/>
<span class="resaltado"><?php echo $locale['5001']; ?></span>
<?php
$localidadesNoDeseadas=$persona->getProvinciasNoDeseadas();
$keylocalidades=array_values($localidadesNoDeseadas);
// Mostramos la lista
foreach ($localidadesNoDeseadas as $nombre =>$valor) {
echo $nombre.", ";
}
?>
</td>
</tr>
<?php

View File

@ -74,13 +74,21 @@ include("functions.php");
<?php echo rellena_fecha_select($fecha_alta, "mod_fin");
}?>
</td>
<td><div style="float:left "><?php echo $locale['1561'];?></div><div style="float:left ">
<td><div style="float: left;"><?php echo $locale['1561'];?><br/>
<?php
echo $html->listaSelect("provincias","oid","id","provincia_deseada",array("",$locale['ns']),"",true,true,"15");
?>
</div>
<div style="float: right;"><?php echo $locale['5001'];?><br/>
<?php
echo $html->listaSelect("provincias","oid","id","provincias_no_deseadas",array("",$locale['ns']),"",true,true,"15");
?>
</div>
</td>
</tr>
<tr>

View File

@ -201,6 +201,7 @@ carpeta antiword en el ra
/* Devuelve la lista de currículums */
function menu_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);
@ -216,13 +217,14 @@ function menu_curriculums($oid, $tipo){
<img src='css/eliminar.png'/></a></td></tr>";
}
echo "</table>";
}else{
} else {
echo "<p>".$locale['138']."</p>";
}
}
/* 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);

View File

@ -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 '</div></td>';
// Provincia deseada
echo '<td ';
if(in_array("22",$errores)) echo " class=\"errorcampo\"";
echo ' width="33%" valign="top" textalign="right" '.$ldes.'>' .
'<div style="float:left ">'.$locale['1561'].'</div><div style="float:left ">';
'<div style="float:left ">'.$locale['1561'].'</div><div style="float:left ">';
$localidadesDeseadas=$candidato->getProvinciasDeseadas();
$keylocalidades=array_values($localidadesDeseadas);
// Mostramos la lista para borrar
// Mostramos la lista
foreach ($localidadesDeseadas as $nombre =>$valor) {
echo $nombre." <a href=\"gestion_candidato.php?oid=".$candidato->getValor("oid")."&action=dellLocDes&id=".$valor."\">Borrar</a><br />";
}
@ -289,7 +304,23 @@ foreach ($localidadesDeseadas as $nombre =>$valor) {
echo '</div></td>';
echo "<td></td>";
// Provincia no deseada
echo '<td ';
if(in_array("22",$errores)) echo " class=\"errorcampo\"";
echo ' width="33%" valign="top" textalign="right" '.$ldes.'>' .
'<div style="float:left ">'.$locale['5001'].'&nbsp;</div><div style="float:left ">';
$localidadesNoDeseadas=$candidato->getProvinciasNoDeseadas();
$keylocalidades=array_values($localidadesNoDeseadas);
// Mostramos la lista
foreach ($localidadesNoDeseadas as $nombre =>$valor) {
echo $nombre." <a href=\"gestion_candidato.php?oid=".$candidato->getValor("oid")."&action=dellLocNoDes&id=".$valor."\">Borrar</a><br />";
}
//rellena_desplegable_localidad_mult($candidato->getProvinciasNoDeseadas(), "provincia_no_deseada");
echo $html->listaSelect("provincias","oid","id","provincias_no_deseadas",array("",$locale['ns']),$candidato->getProvinciasNoDeseadas(),false,true,"15");
echo '</div></td>';

View File

@ -604,7 +604,7 @@ $locale['1085'] = "Se ha propuesto correctamente el candidato a las solicitudes
$locale['1086'] = "Se ha eliminado la titulaci&oacute;n correctamente";
$locale['1087'] = "Se ha cambiado correctamente el estado";
$locale['1088'] = "No se ha podido cambiar el estado";
$locale['1089'] = "Se ha eliminado la provincia desada correctamente";
$locale['1089'] = "Se ha eliminado la provincia deseada correctamente";
$locale['1090'] = "Se ha eliminado el perfil t&eacute;cnico correctamente";
$locale['1091'] = " del cv";
$locale['1092'] = "y permancer&aacute; en &eacute;l";
@ -1009,4 +1009,7 @@ $locale['4046'] = "No se ha podido actualiar la observaci&oacute;n";
$locale['4047'] = "Se ha a&ntilde;adido correctamente la observaci&oacute;n";
$locale['4048'] = "Cualquier perfil t&eacute;cnico";
$locale['5001'] = "Provincia no deseada:";
$locale['5002'] = "Se ha eliminado la provincia no deseada correctamente";
?>