Se solicitan los siguientes cambios en los estados de los candidatos.

- 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
This commit is contained in:
roberto 2011-12-28 11:22:48 +00:00
parent fdedf6bc24
commit 4204a6ea18
9 changed files with 58 additions and 41 deletions

View File

@ -215,8 +215,8 @@ return $resultado;
* Otro - Excepción
*/
$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)) {

View File

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

View File

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

View File

@ -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 situación) pasará a disponible si no tiene alguna otra oferta,
//si tiene alguna otra oferta asociada se deja tal cual esta su situación
//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 situación) 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 cambiarán a Disponible asignado (560)
case 510:;
//Rechazado, Sin más adelante, En proceso:Disponible, Otras provincias. se cambia a los nuevos estados #723 Peticion
//Todos los candidatos con alguno de estos estados cambiarán 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);

View File

@ -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']."<br />";
$errores[]="23";
}
*/
include_once("verificar_candidato.php");
if(count($errores)==0){

View File

@ -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');
-- --------------------------------------------------------

View File

@ -259,6 +259,9 @@ if (in_array("laborables", $mostrarDetalle)) { ?>
echo "<br />";
$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)) { ?>
<?php
}
echo "<br />";
}//FIN DE FILTRO
}
?>
</td>

View File

@ -872,7 +872,7 @@ $locale['1815'] = "Procedencia del CV.";
$locale['1816'] = "En estos momentos deber&iacute;a estar viendo un cuadro de di&aacute;logo para seleccionar el destino donde quiere realizar la copia de seguridad.<br> Si no es as&iacute;, pinche en el enlace de debajo para proceder a guardar la copia.<br>";
//Candidatos
$locale['1901'] = "Todos los candidatos";
$locale['1901'] = "Todos";
$locale['1902'] = "Desde";
$locale['1903'] = "Hasta";
$locale['1904'] = "Todos los empleados";

View File

@ -37,12 +37,12 @@ if (isset($variablesExtra)) {
<ul id="tabnav">
<li class="<?php if ($tipoPedidos=="0") echo "activo"; else echo "inactivo";?>"><a href="<?php echo $destinoURL."?byEstado=0".$variablesExtra; ?>"><?php echo $locale["1901"]; ?></a></li>
<li class="<?php if ($tipoPedidos=="510") echo "activo"; else echo "inactivo";?>"><a href="<?php echo $destinoURL."?byEstado=510".$variablesExtra; ?>"><?php echo nombre_estado("510"); ?></a></li>
<li class="<?php if ($tipoPedidos=="511") echo "activo"; else echo "inactivo";?>"><a href="<?php echo $destinoURL."?byEstado=511".$variablesExtra; ?>"><?php echo nombre_estado("511"); ?></a></li>
<li class="<?php if ($tipoPedidos=="520") echo "activo"; else echo "inactivo";?>"><a href="<?php echo $destinoURL."?byEstado=520".$variablesExtra; ?>"><?php echo nombre_estado("520"); ?></a></li>
<li class="<?php if ($tipoPedidos=="530") echo "activo"; else echo "inactivo";?>"><a href="<?php echo $destinoURL."?byEstado=530".$variablesExtra; ?>"><?php echo nombre_estado("530"); ?></a></li>
<li class="<?php if ($tipoPedidos=="540") echo "activo"; else echo "inactivo";?>"><a href="<?php echo $destinoURL."?byEstado=540".$variablesExtra; ?>"><?php echo nombre_estado("540"); ?></a></li>
<li class="<?php if ($tipoPedidos=="560") echo "activo"; else echo "inactivo";?>"><a href="<?php echo $destinoURL."?byEstado=560".$variablesExtra; ?>"><?php echo nombre_estado("560"); ?></a></li>
<li class="<?php if ($tipoPedidos=="600") echo "activo"; else echo "inactivo";?>"><a href="<?php echo $destinoURL."?byEstado=600".$variablesExtra; ?>"><?php echo nombre_estado("600"); ?></a></li>
</ul>
</div>
<div style="height: 35px; border-bottom:1px solid #CCC"></div>
@ -134,8 +134,8 @@ 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 se puede eliminar candidatos en los siguientes estados
$estadoSiEliminar=array("510","520","540");
// Sólo se puede eliminar candidatos en los siguientes estados se cambia a los nuevos estados #723 Peticion
$estadoSiEliminar=array("510","511","520","600");
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>