Se revisa el historial de candidatos, solicitudes y ofertas, se cambian las tablas de historial para tener campo id

git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk@99 e2b1556b-49f8-d141-9351-52d6861a72d9
This commit is contained in:
roberto 2011-06-22 08:26:02 +00:00
parent dc577d3296
commit 3c571c428e
7 changed files with 110 additions and 42 deletions

View File

@ -43,11 +43,35 @@ class Candidato extends Persona {
*/
$sesion = $this->usuario->getValor("oid");
if ($this->usuario->tieneRol(1) || $this->usuario->tieneRol(4)) {
return parent::setCampo($nombre, $valor);
$viejo = $this->getValor($nombre);
$resultado = parent::setCampo($nombre, $valor);
///////////////////////////////////////////////////
//SOLO ACTUALIZA EL HISTORIAL LOS CAMBIOS DE ESTADO
///////////////////////////////////////////////////
if ($nombre == "estado") {
$estado_viejo = $this->darNombreEstado($viejo, "sp");
$estado_nuevo = $this->darNombreEstado($valor, "sp");
$historial = "Cambio de estado (". $estado_viejo ." a ". $estado_nuevo .")";
$this->actualizarHistorial($historial);
}
return $resultado;
} else {
//Campos que se pueden editar por el gerente, ya sea directamente o mediante una transición.
if (($nombre == "observaciones" || $nombre == "msgEstado" || $nombre = "diasEspera" || $nombre == "estado") && $this->usuario->tieneRol(3)) {
return parent::setCampo($nombre, $valor);
$viejo = $this->getValor($nombre);
$resultado = parent::setCampo($nombre, $valor);
///////////////////////////////////////////////////
//SOLO ACTUALIZA EL HISTORIAL LOS CAMBIOS DE ESTADO
///////////////////////////////////////////////////
if ($nombre == "estado") {
$estado_viejo = $this->darNombreEstado($viejo, "sp");
$estado_nuevo = $this->darNombreEstado($valor, "sp");
$historial = "Cambio de estado (". $estado_viejo ." a ". $estado_nuevo .")";
$this->actualizarHistorial($historial);
}
return $resultado;
} else {
$error = "El usuario no tiene permisos para editar al candidato.";
throw new Exception($error);
@ -57,6 +81,12 @@ class Candidato extends Persona {
}
}
function darNombreEstado($cod, $idioma) {
$consulta = "SELECT NOMBRE from candidatos_estados WHERE cod=\"" . $cod . "\" AND idioma=\"" . $idioma . "\"";
$bd = new BD();
return $bd->getCampo($consulta);
}
function addCurriculum($fichero) {
//PERMISOS:
/*

View File

@ -51,10 +51,12 @@ class ListaCandidatos extends ListaPersonas {
* @param campos - datos del candidato.
*/
function addCandidato($campos) {
$campos["estado"] = 510;
$campos["estado"] = 510; //Pendiente de clasificar
$id = parent::addPersona($campos);
$candidato = new Candidato($this->usuario, $id);
$mensaje = "Nuevo candidato";
$mensaje = "Nuevo candidato";
$candidato->actualizarHistorial($mensaje);
$mensaje = "Estado inicial ( ". $candidato->darNombreEstado($campos["estado"],"sp") ." )";
$candidato->actualizarHistorial($mensaje);
return $id;
}

View File

@ -196,6 +196,8 @@ include_once("Objects/Pedido.php");
$p = new Pedido($id, $this->gestor);
$mensaje = "Nueva solicitud de oferta";
$p->actualizarHistorial($mensaje);
$mensaje = "Estado inicial ( ". $p->darNombreEstado($campos["estado"],"sp") ." )";
$p->actualizarHistorial($mensaje);
}
return $id;
}

View File

@ -60,6 +60,12 @@ class Oferta {
return $bd->execQuery($consulta);
}
function darNombreEstado($cod, $idioma) {
$consulta = "SELECT NOMBRE from candidaturas_estados WHERE cod=\"" . $cod . "\" AND idioma=\"" . $idioma . "\"";
$bd = new BD();
return $bd->getCampo($consulta);
}
function getValor($nombre) {
if (array_key_exists($nombre, $this->campos)) {
// El campo ya lo habíamos recuperamos, lo mostramos
@ -186,14 +192,17 @@ class Oferta {
// Guardar en el historial
$valor = $this->getValorMulti($nombre, $valor);
if ($viejo == "" && $valor != "") {
$historial = "$nombre (de - a $valor)";
} else {
$historial = "$nombre (de $viejo a $valor)";
}
if ($nombre = "estado") {
$this->actualizarHistorial($historial);
}
////////////////////////////////////////////////////////////////////////////////
//SOLO ACTUALIZA EL HISTORIAL LOS CAMBIOS DE ESTADO Y ASIGNACIONES DE CANDIDATOS
////////////////////////////////////////////////////////////////////////////////
if ($nombre == "estado") {
$estado_viejo = $this->darNombreEstado($viejo, "sp");
$estado_nuevo = $this->darNombreEstado($valor, "sp");
$historial = "Cambio de estado (". $estado_viejo ." a ". $estado_nuevo .")";
$this->actualizarHistorial($historial);
}
}
}
} else {
@ -245,7 +254,7 @@ class Oferta {
$historial = "";
$oid = $this->getValor("oid");
$consulta = "SELECT * FROM historial_oferta WHERE oid_h='$oid' ORDER BY fecha_h DESC";
$consulta = "SELECT * FROM historial_oferta WHERE oid_h='$oid' ORDER BY id DESC";
$bd = new BD();
$resultado = $bd->execQuery($consulta);
@ -277,7 +286,7 @@ class Oferta {
//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
case 560: return true; break;
case 560:;
case 510:;
case 521:;
case 522:;
@ -285,11 +294,16 @@ class Oferta {
case 530:;
case 540:;
case 550:
//Modificamos historial de candidato
$mensaje = "Se quita en oferta ". $this->getValor("referencia");
$candidato->actualizarHistorial($mensaje);
//Modificamos historial de la oferta
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
$mensaje = "El candidato ".$nombre_candidato." se quita de la oferta";
$this->actualizarHistorial($mensaje);
//Cambiamos de estado al candidato
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;
@ -317,6 +331,13 @@ class Oferta {
//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
$mensaje = "Asignado en oferta ". $this->getValor("referencia");
$candidato->actualizarHistorial($mensaje);
//Modificamos historial de oferta
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
$mensaje = "Asignado el candidato ".$nombre_candidato;
$this->actualizarHistorial($mensaje);
return true;
break;
@ -327,10 +348,15 @@ class Oferta {
case 523:;
case 540:
$this->setCampo("candidato", $idCandidato);
//Modificamos historial de candidato
$mensaje = "Asignado en oferta ". $this->getValor("referencia");
$candidato->actualizarHistorial($mensaje);
//Modificamos historial de oferta
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
$mensaje = "Asignado el candidato ".$nombre_candidato;
$this->actualizarHistorial($mensaje);
//Cambiamos el estado del candidato
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;
}
else {
@ -346,6 +372,13 @@ class Oferta {
}
else {
$this->setCampo("candidato", $idCandidato);
//Modificamos historial de candidato
$mensaje = "Asignado en oferta ". $this->getValor("referencia");
$candidato->actualizarHistorial($mensaje);
//Modificamos historial de oferta
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
$mensaje = "Asignado el candidato ".$nombre_candidato;
$this->actualizarHistorial($mensaje);
return true;
}
break;

View File

@ -176,6 +176,14 @@ class Pedido {
function getCampos() {
return $this->campos;
}
function darNombreEstado($cod, $idioma) {
$consulta = "SELECT NOMBRE from pedidos_estados WHERE cod=\"" . $cod . "\" AND idioma=\"" . $idioma . "\"";
$bd = new BD();
echo $consulta;
return $bd->getCampo($consulta);
}
/**
* Asigna un nuevo campo al pedido.
@ -204,12 +212,14 @@ class Pedido {
if ($bd->execQuery($consulta)) {
// Comprobamos multivaluado y casos especiales:
$valor = $this->getValorMulti($nombre, $valor);
if ($viejo == "" && $valor != "") {
$historial = "$nombre (de - a $valor)";
} else {
$historial = "$nombre (de $viejo a $valor)";
}
//$this->actualizarHistorial($historial);
///////////////////////////////////////////////////
//SOLO ACTUALIZA EL HISTORIAL LOS CAMBIOS DE ESTADO
///////////////////////////////////////////////////
if ($nombre == "estado") {
$historial = "Cambio de estado (". $viejo ." a ". $valor .")";
$this->actualizarHistorial($historial);
}
}
}
} else {
@ -943,7 +953,7 @@ class Pedido {
$historial = "";
$oid = $this->getValor("oid");
$consulta = "SELECT * FROM historial_pedido WHERE oid_h='$oid' ORDER BY fecha_h DESC";
$consulta = "SELECT * FROM historial_pedido WHERE oid_h='$oid' ORDER BY id DESC";
$bd = new BD();
$resultado = $bd->execQuery($consulta);

View File

@ -242,19 +242,6 @@
// if($bd->execQuery($consulta)){
//Comprobamos multivaluado y casos especiales:
$valor = $this->getValorMulti($nombre, $valor);
if(($nombre == "observaciones") || ($nombre == "descripcion")){
$historial = $nombre;
}else if($viejo == "" && $valor != ""){
$historial = "$nombre (de - a $valor)";
}else{
$historial = "$nombre (de $viejo a $valor)";
}
//Hay campos que no actualizan el historial
if(($nombre != "msgEstado") && ($nombre != "diasEspera")){
//$this->actualizarHistorial($historial);
}
// }
return $dato;
}else{
return "";
@ -1032,7 +1019,7 @@
$historial = "";
$oid = $this->getValor("oid");
$consulta = "SELECT * FROM historial_usuario WHERE oid_h='$oid' ORDER BY fecha_h DESC";
$consulta = "SELECT * FROM historial_usuario WHERE oid_h='$oid' ORDER BY id desc";
$bd = new BD();
$resultado = $bd->execQuery($consulta);

View File

@ -386,8 +386,11 @@ if (in_array("curriculum", $mostrarDetalle)) { ?>
</tr>
</table>
<?php }
///////////
//HISTORIAL
///////////
if (in_array("historial", $mostrarDetalle)) { ?>
<!-- HISTORIAL -->
<div class="encabezado"><a name="historial"></a><?php echo $locale['1552']; ?></div>
<table align="center" width="100%"><td>
<tr>
@ -397,5 +400,6 @@ if (in_array("curriculum", $mostrarDetalle)) { ?>
</tr>
</table>
<?php } ?>
</div>
</div>