From 3c571c428ea9c0cba76cbd9cae6cd1c0417d6073 Mon Sep 17 00:00:00 2001 From: roberto Date: Wed, 22 Jun 2011 08:26:02 +0000 Subject: [PATCH] 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 --- src/Objects/Candidato.php | 34 ++++++++++++++++- src/Objects/ListaCandidatos.php | 6 ++- src/Objects/ListaPedido.php | 2 + src/Objects/Oferta.php | 65 +++++++++++++++++++++++++-------- src/Objects/Pedido.php | 24 ++++++++---- src/Objects/Persona.php | 15 +------- src/detalles_usuario.php | 6 ++- 7 files changed, 110 insertions(+), 42 deletions(-) diff --git a/src/Objects/Candidato.php b/src/Objects/Candidato.php index c7e6bb0..70ec93c 100644 --- a/src/Objects/Candidato.php +++ b/src/Objects/Candidato.php @@ -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: /* diff --git a/src/Objects/ListaCandidatos.php b/src/Objects/ListaCandidatos.php index 6387822..581962b 100644 --- a/src/Objects/ListaCandidatos.php +++ b/src/Objects/ListaCandidatos.php @@ -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; } diff --git a/src/Objects/ListaPedido.php b/src/Objects/ListaPedido.php index cc2ea4f..b73f7ba 100644 --- a/src/Objects/ListaPedido.php +++ b/src/Objects/ListaPedido.php @@ -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; } diff --git a/src/Objects/Oferta.php b/src/Objects/Oferta.php index f26db77..11a1b4b 100644 --- a/src/Objects/Oferta.php +++ b/src/Objects/Oferta.php @@ -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; diff --git a/src/Objects/Pedido.php b/src/Objects/Pedido.php index a881cb9..dc37f71 100644 --- a/src/Objects/Pedido.php +++ b/src/Objects/Pedido.php @@ -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); diff --git a/src/Objects/Persona.php b/src/Objects/Persona.php index 9e5ddc1..aa43f58 100644 --- a/src/Objects/Persona.php +++ b/src/Objects/Persona.php @@ -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); diff --git a/src/detalles_usuario.php b/src/detalles_usuario.php index 5469e73..88bf8bd 100644 --- a/src/detalles_usuario.php +++ b/src/detalles_usuario.php @@ -386,8 +386,11 @@ if (in_array("curriculum", $mostrarDetalle)) { ?> -
@@ -397,5 +400,6 @@ if (in_array("curriculum", $mostrarDetalle)) { ?>
+