From 6edd53909f08f1d1f906a0241fdeceb314281abb Mon Sep 17 00:00:00 2001 From: roberto Date: Thu, 2 Jun 2011 12:00:58 +0000 Subject: [PATCH] tercera parte de cambios en candidatos con capacidades funcionando git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk@84 e2b1556b-49f8-d141-9351-52d6861a72d9 --- src/Objects/CapacidadProfesional.php | 24 ++++- src/addCapacidadProfesional.php | 83 +++++++++------ src/eliminarCapacidadProfesional.php | 24 +++++ src/functions.js | 4 +- src/functions_capacidades.php | 17 +-- src/gestionCapacidadProfesional.php | 145 +++++++++++--------------- src/gestion_candidato.php | 2 +- src/idiomas/sp/lenguaje.php | 6 +- src/js/rrhh.js | 7 ++ src/verificarCapacidadProfesional.php | 12 +++ 10 files changed, 189 insertions(+), 135 deletions(-) create mode 100644 src/eliminarCapacidadProfesional.php create mode 100644 src/verificarCapacidadProfesional.php diff --git a/src/Objects/CapacidadProfesional.php b/src/Objects/CapacidadProfesional.php index f403109..5c0783a 100644 --- a/src/Objects/CapacidadProfesional.php +++ b/src/Objects/CapacidadProfesional.php @@ -86,7 +86,7 @@ //Insertamos en la BD $consulta = "INSERT INTO capacidades ($inserto) VALUES ($valores)"; - +echo $consulta; $bd = new BD(); if(!$bd->execQuery($consulta)){ $error = "Campos de la capacidad incorrectos. Por favor, avise al webmaster de este error."; @@ -113,7 +113,7 @@ $bd = new BD(); $bd->execQuery($consulta); $consulta = "INSERT INTO capacidades_perfil_tecnologias (id_capacidad, id_perfil_tecnico, id_tecnologia, meses) VALUES('$id_capacidad', '$id_perfil_tecnico', '$id_tecnologia', '$meses')"; - echo $consulta; +echo $consulta; $bd = new BD(); if($bd->execQuery($consulta)){ $mensaje = "Nueva tecno: $nombre_tecno"; @@ -170,11 +170,29 @@ // $fecha = "'".date('Y'."-".'m'."-".'d')."'"; // $consulta .= " fecha_modificacion = $fecha "; $consulta .= " WHERE id=". $this->campos['id']; - +echo $consulta; $bd = new BD(); $bd->execQuery($consulta); } + /** + * Asigna nuevos campos a la persona. + * @param array - lista de campos a asignar de la forma campo => valor. + */ + function eliminar(){ + //Eliminamos de la tabla detalle + $consulta = "DELETE FROM capacidades_perfil_tecnologias WHERE id_capacidad='".$this->campos["id"]."'"; +echo $consulta; + $bd = new BD(); + $bd->execQuery($consulta); + $consulta = "DELETE FROM capacidades WHERE id='".$this->campos["id"]."'"; +echo $consulta; + if($bd->execQuery($consulta)) + return true; + else + return false; + } + } diff --git a/src/addCapacidadProfesional.php b/src/addCapacidadProfesional.php index f521a2a..22efe1e 100644 --- a/src/addCapacidadProfesional.php +++ b/src/addCapacidadProfesional.php @@ -26,15 +26,22 @@ include LOCALE.LOCALESET."lenguaje.php"; include("functions.php"); include_once("Objects/HTML.php"); $html=new HTML($locale); - +$mensaje=""; $errores=array(); +$errores_capacidad=""; + +//Al ser añadir sabemos siempre que viene de la pantalla del candidato con el id del canidato pasado por get $id_candidato = $_GET['id_candidato']; -//En el caso de añadir +//Cuando se da a guardar todo viene por POST if(stripinput($_POST['action'])=="add"){ $id_candidato = $_POST["id_candidato"]; - $perfil = $_POST["id_perfil_tecnico"]; - $tecnologia = $_POST["tecnologia"]; + $perfil_tecnico = $_POST["id_perfil_tecnico"]; + $perfil_funcional = $_POST["id_perfil_funcional"]; + $tecnologias = $_POST["tecnologias"]; + + //VALIDACIONES + include("verificarCapacidadProfesional.php"); if(count($errores)==0){ $arrayInsert=array(); @@ -43,14 +50,14 @@ if(stripinput($_POST['action'])=="add"){ $camposQuitar["id_candidato"]=stripinput($_POST['id_candidato']); $camposQuitar["id_perfil_tecnico"]=stripinput($_POST['id_perfil_tecnico']); $camposQuitar["id_perfil_funcional"]=stripinput($_POST['id_perfil_funcional']); - $camposQuitar["tecnologia"]=$_POST['tecnologia']; + $camposQuitar["tecnologias"]=$_POST['tecnologias']; $camposInsertar=array_diff_assoc($_POST,$camposQuitar); $camposInsertar["id_usuario"]=$_POST['id_candidato']; - $camposInsertar["id_perfil_tecnico"]=$_POST['id_perfil_tecnico'][0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno - $camposInsertar["id_perfil_funcional"]=$_POST['id_perfil_funcional'][0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno + $camposInsertar["id_perfil_tecnico"]=$perfil_tecnico[0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno + $camposInsertar["id_perfil_funcional"]=$perfil_funcional[0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno $vacio=array(); $vacio['0']=""; - $_POST['tecnologia']=array_diff_assoc($_POST['tecnologia'],$vacio); + $_POST['tecnologias']=array_diff_assoc($_POST['tecnologias'],$vacio); foreach($camposInsertar as $nombre_campo => $valor){ if($valor!="") @@ -65,7 +72,11 @@ if(stripinput($_POST['action'])=="add"){ $idCapacidadNew= $CapacidadProfesional->addCapacidad($arrayInsert); $CapacidadProfesional = new CapacidadProfesional($idCapacidadNew,"candidato"); if($idCapacidadNew!="-1"){ - $CapacidadProfesional->addTecnologias($_POST['tecnologia']); + //Este proceso se hace para que se agregen bien las tecnologías ya que en la edicion se espera despues del id de la tecnologia -meses de la misma + for ($i=0; $i < count($tecnologias); $i++) + $tecnologias[$i]=$tecnologias[$i]."-"; + $CapacidadProfesional->addTecnologias($tecnologias); + header("Location: gestionCapacidadProfesional.php?id=".$idCapacidadNew); } else { $tipomsg="error"; $mensaje="No se ha podido insertar"; @@ -74,9 +85,19 @@ if(stripinput($_POST['action'])=="add"){ $tipomsg="error"; $mensaje=$e->getMessage(); } + } else { + $tipomsg="error"; + $mensaje=$errores_capacidad; } } +echo "

".$locale['Capacidades014']."

"; +if($mensaje!=""){ + // Mostramos el mensaje + echo "
".$mensaje."
"; +} +echo $locale['286']; + echo "
"; echo ""; echo ""; @@ -84,49 +105,45 @@ echo "'.$locale['Capacidades005'].''; echo ''; - -echo ''; -echo ''; +echo ''; +echo ''; //MESES_TECNICO -echo ''; - +echo ''; echo ''; - -echo ''; -echo ''; - +echo ''; +echo ''; echo '
'.$locale['121'].' 
'; - $auxiliar = ''; +echo '
'.$locale['121'].'
'; echo $html->listaSelect("perfil","oid","id","id_perfil_tecnico",array("",$locale['ns']),$_POST['id_perfil_tecnico'],true,false,"1"); -echo '
'.$locale['Capacidades008'].'

'.$locale['Capacidades008'].'

'.$locale['122'].'   
'; - $auxiliar = ''; - echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$_POST['tecnologia'],true,true,"15"); -echo '
'.$locale['122'].'
'; + echo $html->listaSelect("tecnologia","oid","id","tecnologias",array("",$locale['ns']),$_POST['tecnologias'],true,true,"15"); +echo '
'; echo '
'.$locale['Capacidades007'].'
'; -echo ''; -echo '
'.$locale['Capacidades002'].' 
'; - $auxiliar = ''; +echo ''; +echo ''; +echo ''; +echo ''; //MESES_FUNCIONAL -echo ''; - +echo ''; echo ''; // CAMPO OBSERVACIONES -echo ''; - +echo ''; echo '
'.$locale['Capacidades002'].'
'; echo $html->listaSelect("perfil_funcional","oid","id","id_perfil_funcional",array("",$locale['ns']),$_POST['id_perfil_funcional'],true,false,"1"); -echo '
'.$locale['Capacidades008'].'

'.$locale['Capacidades008'].'

'.$locale['135'].'
'.$locale['135'].'
'; echo ''; +echo '  '; +echo ''; echo ""; diff --git a/src/eliminarCapacidadProfesional.php b/src/eliminarCapacidadProfesional.php new file mode 100644 index 0000000..2034557 --- /dev/null +++ b/src/eliminarCapacidadProfesional.php @@ -0,0 +1,24 @@ +eliminar(); + + if($resultado){ + header("Location: gestion_candidato.php?oid=".$idCandidato."#capacidades"); + } else { + header("Location: gestion_candidato.php?oid=".$idCandidato)."#capacidades"; + } + +} catch (Exception $e) { + $msg=$e->getMessage(); + include_once("showError.php"); +} +?> diff --git a/src/functions.js b/src/functions.js index 61da0e6..e53cd72 100644 --- a/src/functions.js +++ b/src/functions.js @@ -487,8 +487,8 @@ function enable(Id_Componente){ function popup(mylink, windowname) { var href; -var w=500; -var h=500; +var w=800; +var h=800; LeftPosition = (screen.width) ? (screen.width-w)/2 : 0; TopPosition = (screen.height) ? (screen.height-h)/2 : 0; diff --git a/src/functions_capacidades.php b/src/functions_capacidades.php index 8d86e33..49cfc3a 100644 --- a/src/functions_capacidades.php +++ b/src/functions_capacidades.php @@ -9,20 +9,21 @@ include LOCALE.LOCALESET."lenguaje.php"; if(count($ListaCapacidadesProfesionales->capacidad) > 0){ echo ""; echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; for($i=0;$icapacidad);$i++){ $campos = $ListaCapacidadesProfesionales->capacidad[$i]->getCampos(); $tecnologias = $ListaCapacidadesProfesionales->capacidad[$i]->getTecnologias(); echo ""; - echo ""; echo ""; diff --git a/src/gestionCapacidadProfesional.php b/src/gestionCapacidadProfesional.php index 0183947..fec6144 100644 --- a/src/gestionCapacidadProfesional.php +++ b/src/gestionCapacidadProfesional.php @@ -27,53 +27,53 @@ include("functions.php"); include_once("Objects/HTML.php"); include_once("Objects/CapacidadProfesional.php"); $html=new HTML($locale); +$mensaje=""; +$errores=array(); +$errores_capacidad=""; $action=""; -if($_POST['action']!=""){ +if(!Empty($_POST['action'])){ $action=$_POST['action']; } else { - if($_GET['action']!=""){ + if(!Empty($_GET['action'])){ $action=$_GET['action']; } } $id_capacidad=""; -if($_POST['id']!=""){ +if(!Empty($_POST['id'])){ $id_capacidad=$_POST['id']; } else { - if($_GET['id']!=""){ - $id_capacidad=$_GET['id']; + if(!Empty($_GET['id'])){ + $id_capacidad=$_GET['id']; } } -$errores=array(); $capacidad=new CapacidadProfesional($id_capacidad,"candidato"); $camposCapacidad = $capacidad->getCampos(); -//echo "0.clase> ".$id_capacidad ."id_perfil_funcional>".$camposCapacidad['id_perfil_funcional']; switch ($action) { case "edit": -/*{ $perfil = stripinput($_POST["perfil"]); - $meses_tecnico = stripinput($_POST["meses_tecnico"]); - $tecnologia = $_POST["tecnologia"]; - $perfil_funcional = stripinput($_POST["perfil_funcional"]); - $meses_funcional = stripinput($_POST["meses_funcional"]); - $meses_observaciones = stripinput($_POST["observaciones"]); -*/ - //VERIFICAR + $perfil_tecnico = $_POST["id_perfil_tecnico"]; + $perfil_funcional = $_POST["id_perfil_funcional"]; + $tecnologias = $_POST["tecnologias"]; + + //VALIDACIONES + include("verificarCapacidadProfesional.php"); + if(count($errores)==0){ $arrayInsert=array(); $camposQuitar=array(); $camposQuitar["action"]=stripinput($_POST['action']); $camposQuitar["id_perfil_tecnico"]=stripinput($_POST['id_perfil_tecnico']); $camposQuitar["id_perfil_funcional"]=stripinput($_POST['id_perfil_funcional']); - $camposQuitar["tecnologia"]=$_POST['tecnologia']; + $camposQuitar["tecnologias"]=$_POST['tecnologias']; $camposInsertar=array_diff_assoc($_POST,$camposQuitar); - $camposInsertar["id_perfil_tecnico"]=$_POST['id_perfil_tecnico'][0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno - $camposInsertar["id_perfil_funcional"]=$_POST['id_perfil_funcional'][0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno + $camposInsertar["id_perfil_tecnico"]=$perfil_tecnico[0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno + $camposInsertar["id_perfil_funcional"]=$perfil_funcional[0]; //Sabemos que siempre va a tener un unico elemento el array ya que no le dejamos seleccionar mas de uno $vacio=array(); $vacio['0']=""; - $_POST['tecnologia']=array_diff_assoc($_POST['tecnologia'],$vacio); + $tecnologias=array_diff_assoc($tecnologias,$vacio); foreach($camposInsertar as $nombre_campo => $valor){ if($valor!="") $arrayInsert[$nombre_campo]=$valor; @@ -83,25 +83,20 @@ switch ($action) { try{ $errorInsert=false; $capacidad->modificarCapacidad($arrayInsert); - - $tec = array(); - $tec = $_POST['tecnologia']; + //El proceso es eliminar todas las tecnologias de la capacidad y volverlas a insertar + //por lo que a las tecnologias nuevas pasados por el POST hay que añadir las ya existentes con sus meses $tec_aux = $capacidad->getTecnologias(); foreach ($tec_aux as $fila){ - $tec[]=$fila["id_tecnologia"]; + $tecnologias[]=$fila["id_tecnologia"]; } - - for ($i=0; $i < count($tec); $i++){ - $caption="meses_".$tec[$i]; - $tec[$i]=$tec[$i]."-".$_POST[$caption]; + //Metemos los meses de cada tecnologia si los tuviera + for ($i=0; $i < count($tecnologias); $i++){ + $caption="meses_".$tecnologias[$i]; + $tecnologias[$i]=$tecnologias[$i]."-".$_POST[$caption]; } - - print_r ($tec); - $capacidad->addTecnologias($tec); + if (count($tecnologias)>0) + $capacidad->addTecnologias($tecnologias); - //Es para que refreque los datos ya que al asignar lo que hace es hacer una copia de la clase y no asignacion de punteros - $capacidad = new CapacidadProfesional($id_capacidad,"candidato"); - $camposCapacidad = $capacidad->getCampos(); $mensaje=$locale['Capacidades010']; $tipomsg="ok"; } catch (Exception $e){ @@ -115,20 +110,18 @@ switch ($action) { break; case "dellTec": - echo ">>>>>ENTRO EN dellTEC"; - $idCap=$_GET['id_cap']; - $idTec=$_GET['id_tec']; - $capacidad->removeTecnologia($idCap, $idTec); - //Es para que refreque los datos ya que al asignar lo que hace es hacer una copia de la clase y no asignacion de punteros - $capacidad = new CapacidadProfesional($idCap,"candidato"); - $camposCapacidad = $capacidad->getCampos(); - $mensaje=$locale['1064']; - $tipomsg="ok"; + $idTec=$_GET['id_tec']; + $capacidad->removeTecnologia($id_capacidad, $idTec); + $mensaje=$locale['1064']; + $tipomsg="ok"; break; default: break; } +//Refrescamos la clase para que se recogan los posibles cambios realizados en el switch +$capacidad = new CapacidadProfesional($id_capacidad,"candidato"); +$camposCapacidad = $capacidad->getCampos(); echo "

".$locale['Capacidades011']."

"; @@ -140,79 +133,57 @@ echo $locale['286']; echo ""; echo ""; -echo ""; +echo ""; echo '
'.$locale['Capacidades005'].'
'; echo '
".$locale['2014']."".$locale['1524']."".$locale['203']."".$locale['Capacidades002']."".$locale['562']."
".$locale['2014']."".$locale['1524']."".$locale['203']."".$locale['Capacidades002']."".$locale['562']."
"; - -// + echo ""; + echo ""; + echo "   "; + echo ""; echo "".$campos["perfil_tecnico"]."   (".$campos["meses_tecnico"]." meses)
'; - -echo ''; -echo ''; +echo ''; //MESES_TECNICO -echo ''; - +echo ''; echo ''; - -echo ''; -echo ''; +echo ''; +echo ''; - - -/* -echo ' - - - - - '; - */ - - +echo ''; +echo ''; echo '
'; +echo '
'.$locale['121'].' 
'; +echo '>'.$locale['121'].'
'; echo $html->listaSelect("perfil","oid","id","id_perfil_tecnico",array("",$locale['ns']),array($camposCapacidad['id_perfil_tecnico'],""),true,false,"1"); -echo '
'.$locale['Capacidades008'].'

'.$locale['Capacidades008'].'
'.$locale['122'].'   
'; +echo '
'.$locale['122'].'
'; $tecnologias=$capacidad->getTecnologias(); $arrayseleccion=array(); + echo $html->listaSelect("tecnologia","oid","id","tecnologias",array("",$locale['ns']),$arrayseleccion,true,true,"15"); +echo '
'; foreach ($tecnologias as $tecnologia) { $arrayseleccion[] = array($tecnologia['id_tecnologia'], $tecnologia['id']); - echo $tecnologia['id']." Borrar
"; - echo ''; + echo '  '; + echo $tecnologia['id']." Borrar
"; } - echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$arrayseleccion,true,true,"15"); -echo '
'.$locale['122'].''; - $tecnologias=$candidato->getTecnologias(); - $keytecnologias=array_values($tecnologias); - // Mostramos la lista para borrar - foreach ($tecnologias as $nombre =>$valor) { - echo $nombre." getValor("oid")."&action=dellTec&id=".$valor."\">Borrar
"; - } - - echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$candidato->getTecnologias(),false,true,"15"); - - echo '
'; echo '
'.$locale['Capacidades007'].'
'; -echo ''; -echo '
'.$locale['Capacidades002'].' 
'; +echo ''; +echo ''; +echo ''; //MESES_FUNCIONAL -echo ''; - +echo ''; echo ''; // CAMPO OBSERVACIONES -echo ''; - - +echo ''; echo '
'.$locale['Capacidades002'].'
'; echo $html->listaSelect("perfil_funcional","oid","id","id_perfil_funcional",array("",$locale['ns']),array($camposCapacidad['id_perfil_funcional'],""),true,false,"1"); -echo '
'.$locale['Capacidades008'].'

'.$locale['Capacidades008'].'
'.$locale['135'].'
'.$locale['135'].'
'; echo ''; +echo '  '; +echo ''; + echo ""; diff --git a/src/gestion_candidato.php b/src/gestion_candidato.php index ad6f8ed..c799b6a 100644 --- a/src/gestion_candidato.php +++ b/src/gestion_candidato.php @@ -458,7 +458,7 @@ echo '
'; //CAPACIDADES PROFESIONALES /////////////////////////// echo ''; -echo '
'.$locale['Capacidades001'].'
'; +echo '
'.$locale['Capacidades001'].'
'; $CapacidadesProfesionales = $candidato->getCapacidadesProfesionales(); VerListaCapacidadesProfesionales($CapacidadesProfesionales); diff --git a/src/idiomas/sp/lenguaje.php b/src/idiomas/sp/lenguaje.php index a098cee..d666d4a 100644 --- a/src/idiomas/sp/lenguaje.php +++ b/src/idiomas/sp/lenguaje.php @@ -18,6 +18,7 @@ $locale['del'] = " del "; $locale['de'] = " de "; $locale['add'] = "Añadir"; $locale['cancel'] = "Cancelar"; +$locale['cerrar'] = "Cerrar"; //Cabecera: $locale['001'] = " .:: Gestión de solicitudes y ofertas ::."; @@ -148,7 +149,7 @@ $locale['Candidato003'] = "Disponibilidad viajar:"; $locale['Candidato004'] = "Disponibilidad proyectos internacionales:"; $locale['Candidato005'] = "Carnet de conducir:"; $locale['Capacidades001'] = "CAPACIDADES PROFESIONALES"; -$locale['Capacidades002'] = "Perfil funcional"; +$locale['Capacidades002'] = "Perfil funcional*:"; $locale['Capacidades003'] = "Nueva capacidad profesional"; $locale['Capacidades004'] = "CAPACIDAD PROFESIONAL"; $locale['Capacidades005'] = "CAPACIDAD TÉCNICA"; @@ -158,6 +159,9 @@ $locale['Capacidades008'] = "meses"; $locale['Capacidades009'] = "Editar capacidad"; $locale['Capacidades010'] = "Se ha modificado el candidato correctamente"; $locale['Capacidades011'] = "Editando Capacidad Profesional"; +$locale['Capacidades012'] = "Debe seleccionar un perfil técnico para la capacidad profesional"; +$locale['Capacidades013'] = "Debe seleccionar un perfil funcional para la capacidad profesional"; +$locale['Capacidades014'] = "Añadiendo Capacidad Profesional"; //Historial: $locale['150'] = "Modificados: "; diff --git a/src/js/rrhh.js b/src/js/rrhh.js index 472467e..40f32ec 100644 --- a/src/js/rrhh.js +++ b/src/js/rrhh.js @@ -5,6 +5,13 @@ function eliminarCandidato(lugar){ } } +function eliminarCapacidad(lugar){ + var mensaje="\xbfEst\xe1 seguro que desea eliminar la capacidad profesional?"; + if(confirm(mensaje)){ + document.location=lugar; + } +} + function eliminarEmpleado(lugar){ var mensaje="\xbfEst\xe1 seguro que desea eliminar el empleado?"; if(confirm(mensaje)){ diff --git a/src/verificarCapacidadProfesional.php b/src/verificarCapacidadProfesional.php new file mode 100644 index 0000000..69c2811 --- /dev/null +++ b/src/verificarCapacidadProfesional.php @@ -0,0 +1,12 @@ + 1 || $perfil_tecnico[0]==0){ + $errores_capacidad .= $locale['Capacidades012']."
"; + $errores[]="1"; + } + + if(count($perfil_funcional) > 1 || $perfil_funcional[0]==0){ + $errores_capacidad .= $locale['Capacidades013']."
"; + $errores[]="2"; + } + +?>