From 4204a6ea1853621e4d21431d68382d8f5c42d458 Mon Sep 17 00:00:00 2001 From: roberto Date: Wed, 28 Dec 2011 11:22:48 +0000 Subject: [PATCH] Tareas #723 Se solicitan los siguientes cambios en los estados de los candidatos. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - El estado "Todos los candidatos" se sustituirá por "Todos". - El estado "Pendiente de clasificar" se sustituirá por "borrador". (Desde este estado se podrá ir a todos menos a los estados "en proceso"). - Nuevo estado "Sin capacidades". (Desde este estado podrá ir a todos los demás menos a "Disponible asignado") - El estado "Rechazados" se queda como está. (Desde este estado solo se podrá volver al estado "borrador"). - El estado "No disponible" se sustituirá por "Si, más adelante". (Desde este estado solo se podrá volver al estado "borrador"). - Nuevo estado "Otras provincias". (Desde este estado solo se podrá volver al estado "borrador"). - El estado "Disponible" pasará a "En proceso: Disponible". (Desde este estado se podrá ir a cualquiera de los estados existentes) - El estado "Disponible asignado" pasará a "En proceso: Disponible asignado. (Este estado solo se pasará cuando un candidato esté asignado a una oferta, y no podrá cambiarse hasta que sea desasignado de la oferta) git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk@113 e2b1556b-49f8-d141-9351-52d6861a72d9 --- src/Objects/Candidato.php | 4 ++-- src/Objects/ListaCandidatos.php | 2 +- src/Objects/ListaPersonas.php | 4 ++-- src/Objects/Oferta.php | 40 ++++++++++++++++++++------------- src/addCandidato.php | 6 ----- src/database/selfor.sql | 29 ++++++++++++++++-------- src/detalles_usuario.php | 4 ++++ src/idiomas/sp/lenguaje.php | 2 +- src/ver_lista_candidatos.php | 8 +++---- 9 files changed, 58 insertions(+), 41 deletions(-) diff --git a/src/Objects/Candidato.php b/src/Objects/Candidato.php index 2d08e16..9c5e6fa 100644 --- a/src/Objects/Candidato.php +++ b/src/Objects/Candidato.php @@ -215,8 +215,8 @@ return $resultado; * Otro - Excepcin */ $sesion = $this->usuario->getValor("oid"); - //Nos declaramos un array de estados eliminables: - $estados_eliminables = array("510","520","540"); + //Nos declaramos un array de estados eliminables: se cambia a los nuevos estados #723 Peticion + $estados_eliminables = array("510","511","520","600"); if ($this->usuario->tieneRol(1) || $this->usuario->tieneRol(4)) { $estado = $this->getValor("estado"); if (in_array($estado, $estados_eliminables)) { diff --git a/src/Objects/ListaCandidatos.php b/src/Objects/ListaCandidatos.php index 08e2230..7df82de 100644 --- a/src/Objects/ListaCandidatos.php +++ b/src/Objects/ListaCandidatos.php @@ -61,7 +61,7 @@ class ListaCandidatos extends ListaPersonas { * @param campos - datos del candidato. */ function addCandidato($campos) { - $campos["estado"] = 510; //Pendiente de clasificar + $campos["estado"] = 510; //Borrador se cambia a los nuevos estados #723 Peticion $id = parent::addPersona($campos); $candidato = new Candidato($this->usuario, $id); $mensaje = "Nuevo candidato"; diff --git a/src/Objects/ListaPersonas.php b/src/Objects/ListaPersonas.php index f80e6ad..8f84dd6 100644 --- a/src/Objects/ListaPersonas.php +++ b/src/Objects/ListaPersonas.php @@ -94,8 +94,8 @@ include_once("Empleado.php"); }else{ if($estado > 0){ $consulta = "SELECT * from usuarios where tipo = '".$this->tipo."' and estado='".$estado."' ".$this->orden; - } else{ - $consulta = "SELECT * from usuarios where tipo = '".$this->tipo."' and estado in ('510', '520', '530', '540', '560')$this->orden"; + } else{ //se cambia a los nuevos estados #723 Peticion + $consulta = "SELECT * from usuarios where tipo = '".$this->tipo."' and estado in ('510', '511', '520', '530', '540', '560', '600')$this->orden"; } } diff --git a/src/Objects/Oferta.php b/src/Objects/Oferta.php index 506f603..da8f881 100644 --- a/src/Objects/Oferta.php +++ b/src/Objects/Oferta.php @@ -178,7 +178,6 @@ class Oferta { */ $gerente = $this->getValor("gerente"); $sesion = $this->usuario->getValor("oid"); - if ($this->usuario->tieneRol(1) || ($this->usuario->tieneRol(3) && $sesion == $gerente) || $this->setAutomatico) { $viejo = $this->getValor($nombre); if ($viejo != $valor) { @@ -189,7 +188,6 @@ class Oferta { $consulta = "UPDATE candidato_pedido SET $nombre = '$valor' WHERE oid='$oid'"; $bd = new BD(); if ($bd->execQuery($consulta)) { - // Guardar en el historial $valor = $this->getValorMulti($nombre, $valor); @@ -236,10 +234,10 @@ if ($nombre == "estado") { } /** - * Devuelve una lista de candidatos disponibles para una oferta, que son todos menos los no disponibles #679 Peticion + * Devuelve una lista de candidatos disponibles para una oferta, se cambia a los nuevos estados #723 Peticion */ function getCandidatosDisponibles() { - return $this->getCandidatos("510,520,540,560"); + return $this->getCandidatos("520,530,540,560,600"); } /** @@ -275,19 +273,27 @@ if ($nombre == "estado") { return $resultado; } + function getNumOfertasCandidato($oid) { + $consulta = "SELECT * FROM candidato_pedido WHERE candidato='$oid' ORDER BY fecha DESC"; + $bd = new BD(); + $resultado = $bd->execQuery($consulta); + return mysql_num_rows($resultado); + } + function quitarCandidato() { $idCand = $this->getValor("candidato"); if (!empty($idCand)) { $candidato = new Candidato($this->usuario, $idCand); $estadoCand = $candidato->getValor("estado"); - $numOfertasCandidato = $this->getOfertasCandidato($idCand); - + $numOfertasCandidato = $this->getNumOfertasCandidato($idCand); +echo "Ofertas del coandidato:".$this->getNumOfertasCandidato($idCand); switch ($estadoCand) { - //TODO CANDIDATO ASOCIADO A UNA OFERTA (este como este su situacin) pasar a disponible si no tiene alguna otra oferta, - //si tiene alguna otra oferta asociada se deja tal cual esta su situacin - //El estado del candidato no cambia si est asociado a alguna otra oferta, sino pasar a Disponible + //TODO CANDIDATO ASOCIADO A UNA OFERTA (este como este su situacin) pasar a En proceso:disponible si no tiene alguna otra oferta, + //el estado del candidato no cambia si est asociado a alguna otra oferta. se cambia a los nuevos estados #723 Peticion + case 600:; case 560:; case 510:; + case 511:; case 520:; case 530:; case 540: @@ -299,7 +305,7 @@ if ($nombre == "estado") { $mensaje = "El candidato ".$nombre_candidato." se quita de la oferta"; $this->actualizarHistorial($mensaje); //Cambiamos de estado al candidato - if (count($numOfertasCandidato) <= 1) { + if ($numOfertasCandidato <= 1) { $candidato->transita("540", ""); } return true; @@ -322,10 +328,10 @@ if ($nombre == "estado") { $candidato = new Candidato($this->usuario, $idCandidato); $estadoCand = $candidato->getValor("estado"); - $numOfertasCandidato = $this->getOfertasCandidato($idCand); + $numOfertasCandidato = $this->getNumOfertasCandidato($idCand); switch ($estadoCand) { - //Disponible asignado, el estado del candidato no cambia, solo se asigna a la oferta y ya est. + //En proceso:Disponible asignado, el estado del candidato no cambia, solo se asigna a la oferta y ya est. case 560: $this->setCampo("candidato", $idCandidato); //Modificamos historial de candidato @@ -336,11 +342,13 @@ if ($nombre == "estado") { $mensaje = "Asignado el candidato ".$nombre_candidato; $this->actualizarHistorial($mensaje); return true; - break; + break; - //Pendiente de clasificar, Rechazados tipo1, tipo2, tipo3, Disponible. Todos los candidatos con alguno de estos estados cambiarn a Disponible asignado (560) - case 510:; + //Rechazado, Sin ms adelante, En proceso:Disponible, Otras provincias. se cambia a los nuevos estados #723 Peticion + //Todos los candidatos con alguno de estos estados cambiarn a En proceso:Disponible asignado (560) + case 600:; case 520:; + case 530:; case 540: $this->setCampo("candidato", $idCandidato); //Modificamos historial de candidato @@ -360,7 +368,7 @@ if ($nombre == "estado") { } break; - //("530") No Disponible + //("") default: $error = "El candidato tiene un estado no permitido ('" . $candidato->getValor("nombre_estado") . "')"; throw new Exception($error); diff --git a/src/addCandidato.php b/src/addCandidato.php index 0d5b003..981be2c 100644 --- a/src/addCandidato.php +++ b/src/addCandidato.php @@ -27,12 +27,6 @@ if(stripinput($_POST['action'])=="add"){ $errores[]="22"; } -/*NO se valida el perfil para candidatos nuevos con estado 510 (pendiente de clasificacion) que es el por defecto - if((count($perfil)==1) && ($perfil["0"]=="")){ - $errores_persona .= $locale['1705']."
"; - $errores[]="23"; - } -*/ include_once("verificar_candidato.php"); if(count($errores)==0){ diff --git a/src/database/selfor.sql b/src/database/selfor.sql index a132596..d31f83b 100644 --- a/src/database/selfor.sql +++ b/src/database/selfor.sql @@ -84,11 +84,13 @@ CREATE TABLE IF NOT EXISTS `candidatos_estados` ( -- INSERT INTO `candidatos_estados` (`cod`, `idioma`, `nombre`, `tipo`) VALUES -(510, 'sp', 'Pendiente de clasificar', 'candidato'), +(510, 'sp', 'Borrador', 'candidato'), +(511, 'sp', 'Sin capacidades', 'candidato'), (520, 'sp', 'Rechazado', 'candidato'), -(530, 'sp', 'No disponible', 'candidato'), -(540, 'sp', 'Disponible', 'candidato'), -(560, 'sp', 'Disponible asignado', 'candidato'); +(530, 'sp', 'Si, más adelante', 'candidato'), +(540, 'sp', 'En proceso:Disponible', 'candidato'), +(560, 'sp', 'En proceso:Disponible asignado', 'candidato'), +(600, 'sp', 'Otras provincias', 'candidato'); -- -------------------------------------------------------- @@ -133,19 +135,28 @@ INSERT INTO `candidatos_transiciones` (`inicial`, `final`, `transicion`, `rol`) (100, 90, 0, '1.4'), (100, 110, 0, '1.4'), (110, 90, 0, '1.4'), +(510, 511, 0, '1.4'), (510, 520, 0, '1.4'), (510, 530, 0, '1.4'), -(510, 540, 0, '1.4'), -(510, 560, 0, '1.4'), +(510, 600, 0, '1.4'), +(511, 510, 0, '1.4'), +(511, 520, 0, '1.4'), +(511, 530, 0, '1.4'), +(511, 540, 0, '1.4'), +(511, 600, 0, '1.4'), (520, 510, 0, '1.4'), -(520, 540, 0, '1.4'), (520, 560, 0, '1.4'), (530, 510, 0, '1.4'), -(530, 540, 0, '1.4'), (530, 560, 0, '1.4'), (540, 510, 0, '1.4'), +(540, 511, 0, '1.4'), +(540, 520, 0, '1.4'), +(540, 530, 0, '1.4'), (540, 560, 0, '1.4'), -(560, 540, 0, ''); +(540, 600, 0, '1.4'), +(560, 540, 0, ''), +(600, 510, 0, '1.4'), +(600, 560, 0, '1.4'); -- -------------------------------------------------------- diff --git a/src/detalles_usuario.php b/src/detalles_usuario.php index 61f0a83..e5098ce 100644 --- a/src/detalles_usuario.php +++ b/src/detalles_usuario.php @@ -259,6 +259,9 @@ if (in_array("laborables", $mostrarDetalle)) { ?> echo "
"; $estadosSiguientes = $persona->getSiguientes(); foreach ($estadosSiguientes as $codEstado => $nombreEstado) { + //#723 Peticion + //FILTRO NO SE PODRÁ CAMBIAR A ESTE ESTADO MANUALMENTE (Este estado solo se pasará cuando un candidato esté asignado a una oferta, si se desasigna el candidato pasará en proceso: disponible + if ($codEstado != "560"){ // En estados 20,60 se necesita mensaj obs if (($codEstado == "20") || ($codEstado == "60")) { ?> @@ -275,6 +278,7 @@ if (in_array("laborables", $mostrarDetalle)) { ?> "; + }//FIN DE FILTRO } ?> diff --git a/src/idiomas/sp/lenguaje.php b/src/idiomas/sp/lenguaje.php index 870e8e2..6f8ad33 100644 --- a/src/idiomas/sp/lenguaje.php +++ b/src/idiomas/sp/lenguaje.php @@ -872,7 +872,7 @@ $locale['1815'] = "Procedencia del CV."; $locale['1816'] = "En estos momentos debería estar viendo un cuadro de diálogo para seleccionar el destino donde quiere realizar la copia de seguridad.
Si no es así, pinche en el enlace de debajo para proceder a guardar la copia.
"; //Candidatos -$locale['1901'] = "Todos los candidatos"; +$locale['1901'] = "Todos"; $locale['1902'] = "Desde"; $locale['1903'] = "Hasta"; $locale['1904'] = "Todos los empleados"; diff --git a/src/ver_lista_candidatos.php b/src/ver_lista_candidatos.php index 7623d9d..3a06cd9 100644 --- a/src/ver_lista_candidatos.php +++ b/src/ver_lista_candidatos.php @@ -37,12 +37,12 @@ if (isset($variablesExtra)) {
@@ -134,8 +134,8 @@ echo '
'; ?> "> getValor("estado"),$estadoSiEliminar)){ ?> &byEstado=')" >