Segunda parte de cambios en candidatos
git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk/src@83 e2b1556b-49f8-d141-9351-52d6861a72d9
This commit is contained in:
parent
3b468043b7
commit
d79e2bb2f4
@ -11,6 +11,7 @@
|
||||
include_once("BD.php");
|
||||
include_once("Persona.php");
|
||||
include_once("Automata.php");
|
||||
include_once("ListaCapacidadesProfesionales.php");
|
||||
|
||||
class Candidato extends Persona {
|
||||
|
||||
@ -28,6 +29,10 @@ class Candidato extends Persona {
|
||||
throw new Exception($error);
|
||||
}
|
||||
}
|
||||
|
||||
function getCapacidadesProfesionales(){
|
||||
return new ListaCapacidadesProfesionales($this->getValor("oid"),"candidato");
|
||||
}
|
||||
|
||||
function setCampo($nombre, $valor) {
|
||||
//PERMISOS:
|
||||
@ -119,7 +124,7 @@ class Candidato extends Persona {
|
||||
*/
|
||||
$sesion = $this->usuario->getValor("oid");
|
||||
//Nos declaramos un array de estados eliminables:
|
||||
$estados_eliminables = array(10, 20, 50, 40, 60);
|
||||
$estados_eliminables = array("510","521","522","523","540");
|
||||
if ($this->usuario->tieneRol(1) || $this->usuario->tieneRol(4)) {
|
||||
$estado = $this->getValor("estado");
|
||||
if (in_array($estado, $estados_eliminables)) {
|
||||
|
||||
181
Objects/CapacidadProfesional.php
Normal file
181
Objects/CapacidadProfesional.php
Normal file
@ -0,0 +1,181 @@
|
||||
<?php
|
||||
/*
|
||||
* Clase Capacidad Profesional
|
||||
*
|
||||
* Contiene toda la información relativa a la capacidad profesional.
|
||||
*
|
||||
*
|
||||
*/
|
||||
include_once("BD.php");
|
||||
|
||||
class CapacidadProfesional{
|
||||
|
||||
private $tipo_capacidad; /* Esta propiedad de la clase nos informará si estamos ante una capadidad profesional de candidato o de solicitud*/
|
||||
protected $campos = array();
|
||||
protected $tecnologias = array();
|
||||
|
||||
|
||||
function CapacidadProfesional($id, $tipo){
|
||||
$this->tipo_capacidad = $tipo;
|
||||
$this->_getCampos($id);
|
||||
//Ahora recuperamos la lista de tecnologías que tendrá en perfil tecnico de la capacidad, si las tubiera
|
||||
$this->_getTecnologias();
|
||||
}
|
||||
|
||||
/**
|
||||
* Devuelve una lista de tecnolog<EFBFBD>as asociadas a la capacidad
|
||||
* OJO ESTA TABLA TAMBIEN GUARDA EL ID_PERFIL_TECNICO POR SI EN UN FUTURO, SE REQUIERE QUE UNA CAPACIDAD TENGA VARIOS PERFILES TECNICOS
|
||||
*/
|
||||
private function _getCampos($id){
|
||||
$bd = new BD();
|
||||
$consulta = "";
|
||||
$consulta = "select C.id, C.id_usuario, C.id_solicitud, C.id_perfil_tecnico, C.id_perfil_funcional, C.meses_tecnico, C.meses_funcional, C.observaciones, ";
|
||||
$consulta = $consulta . "PT.id as perfil_tecnico, PT.abrev, PF.id as perfil_funcional, PF.abrev ";
|
||||
$consulta = $consulta . "from capacidades as C left join perfil as PT on (PT.oid = C.id_perfil_tecnico) ";
|
||||
$consulta = $consulta . "left join perfil_funcional as PF on (PF.oid = C.id_perfil_funcional) ";
|
||||
$consulta = $consulta . "WHERE (C.id =". $id .")";
|
||||
$resultado = $bd->execQuery($consulta);
|
||||
if (mysql_num_rows($resultado) != 0)
|
||||
$this->campos = mysql_fetch_array($resultado);
|
||||
}
|
||||
|
||||
/**
|
||||
* Devuelve una lista de tecnolog<EFBFBD>as asociadas a la capacidad
|
||||
* OJO ESTA TABLA TAMBIEN GUARDA EL ID_PERFIL_TECNICO POR SI EN UN FUTURO, SE REQUIERE QUE UNA CAPACIDAD TENGA VARIOS PERFILES TECNICOS
|
||||
*/
|
||||
private function _getTecnologias(){
|
||||
$bd = new BD();
|
||||
$consulta = "";
|
||||
$consulta = "SELECT CPT.id_capacidad, CPT.id_perfil_tecnico, CPT.id_tecnologia, CPT.meses, T.id ";
|
||||
$consulta = $consulta. "FROM capacidades_perfil_tecnologias as CPT ";
|
||||
$consulta = $consulta. "left join tecnologia as T on (T.oid = CPT.id_tecnologia) ";
|
||||
$consulta = $consulta. "where CPT.id_capacidad = ". $this->campos["id"];
|
||||
// $consulta = $consulta. " and CPT.id_perfil_tecnico = ". $this->campos["id_perfil_tecnico"];
|
||||
$resultado = $bd->execQuery($consulta);
|
||||
if (mysql_num_rows($resultado) != 0) {
|
||||
$this->tecnologias = null;
|
||||
while ($row = mysql_fetch_array($resultado)) {
|
||||
$this->tecnologias[] = $row;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getCampos(){
|
||||
return $this->campos;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserta una nueva capacidad profesional a la lista de capacidades.
|
||||
* @param campos - datos de la capacidad.
|
||||
*/
|
||||
function addCapacidad($campos) {
|
||||
$inserto = "";//,id_solicitud,id_perfil_tecnico, id_perfil_funcional, meses_tecnico, meses_funcional, observaciones";
|
||||
$valores = ""; //, $fecha, $fecha";
|
||||
|
||||
//Procesamos los datos
|
||||
$i=1;
|
||||
foreach($campos as $key => $value){
|
||||
if ($i>1) {
|
||||
$inserto .= ",";
|
||||
$valores .= ",";
|
||||
}
|
||||
$inserto .= " $key";
|
||||
$valores .= " '$value'";
|
||||
$i++;
|
||||
}
|
||||
|
||||
//Insertamos en la BD
|
||||
$consulta = "INSERT INTO capacidades ($inserto) VALUES ($valores)";
|
||||
|
||||
$bd = new BD();
|
||||
if(!$bd->execQuery($consulta)){
|
||||
$error = "Campos de la capacidad incorrectos. Por favor, avise al webmaster de este error.";
|
||||
throw new Exception($error);
|
||||
return false;
|
||||
}
|
||||
$id = mysql_insert_id();
|
||||
return $id;
|
||||
}
|
||||
|
||||
function getTecnologias(){
|
||||
return $this->tecnologias;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Asocia una nueva tecnolog<EFBFBD>a en la base de datos.
|
||||
*/
|
||||
private function addTecnologia($id_tecnologia,$meses){
|
||||
$id_capacidad = $this->campos["id"];
|
||||
$id_perfil_tecnico = $this->campos["id_perfil_tecnico"];
|
||||
if(!in_array($id_tecnologia, $this->tecnologias)){
|
||||
$consulta = "DELETE FROM capacidades_perfil_tecnologias where id_capacidad='$id_capacidad' and id_tecnologia='$id_tecnologia'";
|
||||
$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;
|
||||
$bd = new BD();
|
||||
if($bd->execQuery($consulta)){
|
||||
$mensaje = "Nueva tecno: $nombre_tecno";
|
||||
// $this->actualizarHistorial($mensaje);
|
||||
$this->_getTecnologias(); //Refrescamos la lista
|
||||
$this->listaTecnologias[$nombre_tecno] = $id;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function addTecnologias($array){
|
||||
if(gettype($array) == "array"){
|
||||
foreach($array as $elem){
|
||||
$id=substr($elem, 0, stripos($elem, "-"));
|
||||
$meses=substr($elem, (stripos($elem, "-")+1), strlen($elem));
|
||||
$this->addTecnologia($id,$meses);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Elimina la asociaci<EFBFBD>n entre una tecnolog<EFBFBD>a y la capacidad profesional.
|
||||
*/
|
||||
function removeTecnologia($idCap,$idTec){
|
||||
$bd = new BD();
|
||||
$consulta = "DELETE FROM capacidades_perfil_tecnologias WHERE id_capacidad = '".$idCap."' and id_tecnologia = '".$idTec."'";
|
||||
if($bd->execQuery($consulta)){
|
||||
$this->_getTecnologias();
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Asigna nuevos campos a la persona.
|
||||
* @param array - lista de campos a asignar de la forma campo => valor.
|
||||
*/
|
||||
function modificarCapacidad($array){
|
||||
$consulta = "UPDATE capacidades SET ";
|
||||
$i = 0;
|
||||
foreach($array as $key => $value){
|
||||
if ($i > 0)
|
||||
$consulta .= ", ";
|
||||
$consulta .= $key ."= '". $value ."'";
|
||||
$i++;
|
||||
}
|
||||
// $fecha = "'".date('Y'."-".'m'."-".'d')."'";
|
||||
// $consulta .= " fecha_modificacion = $fecha ";
|
||||
$consulta .= " WHERE id=". $this->campos['id'];
|
||||
|
||||
$bd = new BD();
|
||||
$bd->execQuery($consulta);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
40
Objects/ListaCapacidadesProfesionales.php
Normal file
40
Objects/ListaCapacidadesProfesionales.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
/*
|
||||
* Clase Lista de capacidades profesionales
|
||||
*
|
||||
* Contiene la lista de capacidades profesionales de una entidad (Candidato/Solicitud de oferta)
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
include_once("BD.php");
|
||||
include_once("CapacidadProfesional.php");
|
||||
|
||||
class ListaCapacidadesProfesionales{
|
||||
|
||||
public $capacidad = array();
|
||||
|
||||
function ListaCapacidadesProfesionales($id, $tipo){
|
||||
$bd = new BD();
|
||||
$consulta = "";
|
||||
$tipo_capacidad = $tipo;
|
||||
$consulta = "select id from capacidades ";
|
||||
|
||||
switch ($tipo_capacidad) {
|
||||
case "candidato": $consulta = $consulta. "WHERE id_usuario = ".$id; break;
|
||||
case "solicitud": $consulta = $consulta. "WHERE id_solicitud = ".$id; break;
|
||||
}
|
||||
$resultado = $bd->execQuery($consulta);
|
||||
|
||||
//Procesamos las capacidades
|
||||
if (mysql_num_rows($resultado) != 0) {
|
||||
while ($row = mysql_fetch_array($resultado)) {
|
||||
$this->capacidad[] = new CapacidadProfesional($row['id'], $tipo_capacidad);
|
||||
}
|
||||
}
|
||||
return $this->capacidad;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@ -126,7 +126,7 @@ class ListaOfertas {
|
||||
|
||||
// Si viene ya el candidato indicado, hay que cambiarlo de estado
|
||||
if (array_key_exists("candidato", $campos)) {
|
||||
$ofertaNueva->colocarCandidato($campos["candidato"]);
|
||||
$ofertaNueva->asignarCandidato($campos["candidato"]);
|
||||
}
|
||||
}
|
||||
return $id;
|
||||
|
||||
@ -31,14 +31,24 @@ class Oferta {
|
||||
}
|
||||
|
||||
function eliminar() {
|
||||
// eliminamos en la BD
|
||||
//Antes de nada quitamos el candidato asociado a la oferta para que se haga la lógica que corresponda
|
||||
$idCand = $this->getValor("candidato");
|
||||
if (!empty($idCand)) {
|
||||
if (!$this->quitarCandidato()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// eliminamos en la oferta de la BD
|
||||
$consulta = "DELETE FROM candidato_pedido WHERE oid = ".$this->campos['oid'];
|
||||
|
||||
$bd = new BD();
|
||||
if (!$bd->execQuery($consulta)) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
$mensaje = "Oferta eliminada";
|
||||
$this->actualizarHistorial($mensaje);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -220,7 +230,7 @@ class Oferta {
|
||||
* Devuelve una lista de candidatos disponibles para una oferta, que son todos menos los no disponibles #679 Peticion
|
||||
*/
|
||||
function getCandidatosDisponibles() {
|
||||
return $this->getCandidatos("510,521,522,523,540,550");
|
||||
return $this->getCandidatos("510,521,522,523,540,550,560");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -249,22 +259,36 @@ class Oferta {
|
||||
return $historial;
|
||||
}
|
||||
|
||||
function getOfertasCandidato($oid) {
|
||||
$consulta = "SELECT * FROM candidato_pedido WHERE candidato='$oid' ORDER BY fecha DESC";
|
||||
$bd = new BD();
|
||||
$resultado = $bd->execQuery($consulta);
|
||||
return $resultado;
|
||||
}
|
||||
|
||||
function quitarCandidato() {
|
||||
$idCand = $this->getValor("candidato");
|
||||
if (!empty($idCand)) {
|
||||
$candidato = new Candidato($this->usuario, $idCand);
|
||||
$estadoCand = $candidato->getValor("estado");
|
||||
|
||||
$numOfertasCandidato = $this->getOfertasCandidato($idCand);
|
||||
|
||||
switch ($estadoCand) {
|
||||
//Disponible asignado exclusivo, Disponible asignado, No disponible.
|
||||
//El estado del candidato no cambia si está asociado a alguna otra oferta, sino pasará a Disponible
|
||||
case "560":
|
||||
$candidato->transita("540", "");
|
||||
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
|
||||
$mensaje = "Eliminado el candidato ".$nombre_candidato;
|
||||
$this->actualizarHistorial($mensaje);
|
||||
|
||||
return true;
|
||||
break;
|
||||
|
||||
case "550":
|
||||
case "530":
|
||||
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;
|
||||
//Pendiente de clasificar, Rechazados tipo1, tipo2, tipo3, Disponible.
|
||||
//No podrá darse el caso ya que todo candidato asociado a una oferta debe estar Disponible asignado, Disponible asignado exclusivo, o no disponible
|
||||
default:
|
||||
$error = "[quitarCandidato]. El candidato tiene un estado no permitido ('" . $estadoCand . "')";
|
||||
throw new Exception($error);
|
||||
@ -272,13 +296,8 @@ class Oferta {
|
||||
}
|
||||
}
|
||||
|
||||
function colocarCandidato($idCandidato) {
|
||||
function asignarCandidato($idCandidato) {
|
||||
$idCand = $this->getValor("candidato");
|
||||
|
||||
dbug($idCand);
|
||||
echo dbug('print');
|
||||
|
||||
|
||||
if (!empty($idCand)) {
|
||||
if (!$this->quitarCandidato()) {
|
||||
return false;
|
||||
@ -287,35 +306,38 @@ class Oferta {
|
||||
|
||||
$candidato = new Candidato($this->usuario, $idCandidato);
|
||||
$estadoCand = $candidato->getValor("estado");
|
||||
|
||||
dbug($estadoCand);
|
||||
echo dbug('print');
|
||||
|
||||
$numOfertasCandidato = $this->getOfertasCandidato($idCand);
|
||||
|
||||
switch ($estadoCand) {
|
||||
//Disponible asignado, el estado del candidato no cambia, solo se asigna a la oferta y ya está.
|
||||
case "560":
|
||||
$this->setCampo("candidato", $idCandidato);
|
||||
return true;
|
||||
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":
|
||||
case "521":
|
||||
case "522":
|
||||
case "523":
|
||||
case "540":
|
||||
if ($candidato->transita("560", "")) {
|
||||
$this->setCampo("candidato", $idCandidato);
|
||||
|
||||
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
|
||||
$mensaje = "Asignado el candidato ".$nombre_candidato;
|
||||
$this->setCampo("candidato", $idCandidato);
|
||||
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;
|
||||
}
|
||||
break;
|
||||
|
||||
case "560":
|
||||
$this->setCampo("candidato", $idCandidato);
|
||||
|
||||
$nombre_candidato = $candidato->getValor("nombre") . " " . $candidato->getValor("apellidos");
|
||||
$mensaje = "Asignado el candidato ".$nombre_candidato;
|
||||
$this->actualizarHistorial($mensaje);
|
||||
return true;
|
||||
break;
|
||||
|
||||
default:
|
||||
$error = "El candidato tiene un estado no permitido ('" . $candidato->getValor("estado") . "')";
|
||||
throw new Exception($error);
|
||||
}
|
||||
else {
|
||||
$error = "ERROR: El candidato no ha podido cambiar de estado";
|
||||
throw new Exception($error);
|
||||
}
|
||||
break;
|
||||
|
||||
//("550")Disponible asignado exclusivo,u otro que no exista
|
||||
default:
|
||||
$error = "El candidato tiene un estado no permitido ('" . $candidato->getValor("estado") . "')";
|
||||
throw new Exception($error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ define("LOCALE", "idiomas/");
|
||||
define("LOCALESET", "sp/");
|
||||
include LOCALE.LOCALESET."lenguaje.php";
|
||||
?>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
@ -22,7 +23,6 @@ include LOCALE.LOCALESET."lenguaje.php";
|
||||
*
|
||||
* Hay que tener cuidado porque todas las variables que se le pasan por post son agregadas.
|
||||
*/
|
||||
include("seguridad.php");
|
||||
include("functions.php");
|
||||
include_once("Objects/HTML.php");
|
||||
$html=new HTML($locale);
|
||||
@ -42,11 +42,16 @@ if(stripinput($_POST['action'])=="add"){
|
||||
$camposQuitar["action"]=stripinput($_POST['action']);
|
||||
$camposQuitar["id_candidato"]=stripinput($_POST['id_candidato']);
|
||||
$camposQuitar["id_perfil_tecnico"]=stripinput($_POST['id_perfil_tecnico']);
|
||||
include_once("Objects/Capacidad_profesional.php");
|
||||
$Lista_capacidades = new Lista_capacidades_profesionales($id_candidato,"candidato");
|
||||
$camposQuitar["id_perfil_funcional"]=stripinput($_POST['id_perfil_funcional']);
|
||||
$camposQuitar["tecnologia"]=$_POST['tecnologia'];
|
||||
$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
|
||||
$vacio=array();
|
||||
$vacio['0']="";
|
||||
$_POST['tecnologia']=array_diff_assoc($_POST['tecnologia'],$vacio);
|
||||
|
||||
foreach($camposInsertar as $nombre_campo => $valor){
|
||||
if($valor!="")
|
||||
$arrayInsert[$nombre_campo]=$valor;
|
||||
@ -55,7 +60,16 @@ if(stripinput($_POST['action'])=="add"){
|
||||
// Insertamos la nueva capacidad
|
||||
try{
|
||||
$errorInsert=false;
|
||||
$idCandidatoNew=$Lista_capacidades->addCapacidad($arrayInsert);
|
||||
include_once("Objects/CapacidadProfesional.php");
|
||||
$CapacidadProfesional = new CapacidadProfesional(-1,"candidato");
|
||||
$idCapacidadNew= $CapacidadProfesional->addCapacidad($arrayInsert);
|
||||
$CapacidadProfesional = new CapacidadProfesional($idCapacidadNew,"candidato");
|
||||
if($idCapacidadNew!="-1"){
|
||||
$CapacidadProfesional->addTecnologias($_POST['tecnologia']);
|
||||
} else {
|
||||
$tipomsg="error";
|
||||
$mensaje="No se ha podido insertar";
|
||||
}
|
||||
} catch (Exception $e){
|
||||
$tipomsg="error";
|
||||
$mensaje=$e->getMessage();
|
||||
@ -74,18 +88,41 @@ echo '<table align="center" width="100%">';
|
||||
echo '<tr align="center">';
|
||||
echo '<td ';
|
||||
if(in_array("23",$errores)) echo " class=\"errorcampo\"";
|
||||
echo ' textalign="right" '.$eper.'><div style="float:left ">'.$locale['121'].' </div><div style="float:left ">';
|
||||
echo ' textalign="right"><div style="float:left ">'.$locale['121'].' </div><div style="float:left ">';
|
||||
$auxiliar = '<option selected value="">'.$locale['ns'].'</option>';
|
||||
echo $html->listaSelect("perfil","oid","id","id_perfil_tecnico",array("",$locale['ns']),$_POST['id_perfil_tecnico'],true,false,"1");
|
||||
echo '</div></td></tr>';
|
||||
echo '</div></td>';
|
||||
|
||||
//MESES_TECNICO
|
||||
echo '<td textalign="right">'.$locale['Capacidades008'].'<br><input type="text" name="meses_tecnico" value="'.$_POST['meses_tecnico'].'" size="10" maxlength="10"><br></td>';
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
|
||||
/*
|
||||
echo '<tr align="center">';
|
||||
echo '<td textalign="right" '.$eper.'><div style="float:left ">'.$locale['122'].' </div><div style="float:left ">';
|
||||
echo '<td colspan="2" textalign="right" ><div style="float:left ">'.$locale['122'].' </div><div style="float:left ">';
|
||||
$auxiliar = '<option selected value="">'.$locale['ns'].'</option>';
|
||||
echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$_POST['tecnologia'],true,true,"15");
|
||||
echo '</div></td></tr>';
|
||||
*/
|
||||
|
||||
|
||||
echo '</table>';
|
||||
|
||||
echo '<div class="encabezado">'.$locale['Capacidades007'].'</div>';
|
||||
echo '<table align="center" width="100%">';
|
||||
echo '<td textalign="right"><div style="float:left ">'.$locale['Capacidades002'].' </div><div style="float:left ">';
|
||||
$auxiliar = '<option selected value="">'.$locale['ns'].'</option>';
|
||||
echo $html->listaSelect("perfil_funcional","oid","id","id_perfil_funcional",array("",$locale['ns']),$_POST['id_perfil_funcional'],true,false,"1");
|
||||
echo '</div></td>';
|
||||
|
||||
//MESES_FUNCIONAL
|
||||
echo '<td textalign="right">'.$locale['Capacidades008'].'<br><input type="text" name="meses_funcional" value="'.$_POST['meses_funcional'].'" size="10" maxlength="10"><br></td>';
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
// CAMPO OBSERVACIONES
|
||||
echo '<tr><td colspan="2" align="center">'.$locale['135'].'<br><textarea name="observaciones" rows="7" cols="50" style="overflow: auto;width:100%; height:100px"">'.$_POST['observaciones'].'</textarea></td></tr>';
|
||||
|
||||
|
||||
echo '</table>';
|
||||
|
||||
|
||||
@ -1,57 +1,46 @@
|
||||
<?php
|
||||
/* Devuelve la lista de capacidades
|
||||
* $id será el id_usuario o id_solicitud
|
||||
* $tipo candidato, solicitud
|
||||
* */
|
||||
function lista_capacidades($id_candidato, $tipo){
|
||||
include LOCALE.LOCALESET."lenguaje.php";
|
||||
include_once("Objects/Capacidad_profesional.php");
|
||||
$lista_capacidades = new Lista_capacidad_profesional($id_candidato,$tipo);
|
||||
print_r($lista_capacidades->capacidad[0]->campos);
|
||||
/*
|
||||
if(count($lista_capacidades) > 0){
|
||||
echo "<table width='100%'>";
|
||||
//echo $lista_capacidad->capacidad[0]->getValor("meses_tecnico");
|
||||
echo "<tr class='encabezado'><td>".$locale['2014']."</td><td>".$locale['1524']."</td><td>".$locale['203']."</td><td>".$locale['Capacidades002']."</td><td>".$locale['562']."</td></tr>";
|
||||
|
||||
// for($i=1;$i<=count($lista_capacidades);$i++){
|
||||
/* Devuelve vista de la lista de capacidades profesionales pasada por parametro
|
||||
*/
|
||||
|
||||
/*
|
||||
echo "<tr><td></td>";
|
||||
echo "<td>".$capacidad->getValor("perfil_tecnico")." (".$capacidad->getValor("meses_tecnico")." meses)</td>";
|
||||
echo "<td>"; echo lista_tecnologias($capacidad->getValor("id"), $capacidad->getValor("id_perfil_tecnico"));
|
||||
echo "</td>";
|
||||
echo "<td>".$capacidad->getValor("perfil_funcional")." (".$capacidad->getValor("meses_funcional")." meses)</td>";
|
||||
echo "<td>".$capacidad->getValor("observaciones")."</td></tr>";
|
||||
|
||||
function VerListaCapacidadesProfesionales($ListaCapacidadesProfesionales){
|
||||
include LOCALE.LOCALESET."lenguaje.php";
|
||||
|
||||
}
|
||||
echo "</table>";
|
||||
} else {
|
||||
echo "<p>".$locale['138']."</p>";
|
||||
}
|
||||
*/
|
||||
}
|
||||
if(count($ListaCapacidadesProfesionales->capacidad) > 0){
|
||||
echo "<table width='100%'>";
|
||||
echo "<tr class='encabezado'>";
|
||||
echo "<td>".$locale['2014']."</td>";
|
||||
echo "<td>".$locale['1524']."</td>";
|
||||
echo "<td>".$locale['203']."</td>";
|
||||
echo "<td>".$locale['Capacidades002']."</td>";
|
||||
echo "<td>".$locale['562']."</td></tr>";
|
||||
|
||||
|
||||
function lista_tecnologias($id_capacidad, $id_perfil_tecnico){
|
||||
include LOCALE.LOCALESET."lenguaje.php";
|
||||
|
||||
$consulta = "SELECT CPT.id_capacidad, CPT.id_perfil_tecnico, CPT.id_tecnologia, CPT.meses, T.id ";
|
||||
$consulta = $consulta. "FROM capacidades_perfil_tecnologias as CPT ";
|
||||
$consulta = $consulta. "left join tecnologia as T on (T.oid = CPT.id_tecnologia) ";
|
||||
$consulta = $consulta. "where CPT.id_capacidad = ". $id_capacidad;
|
||||
$consulta = $consulta. " and CPT.id_perfil_tecnico = ". $id_perfil_tecnico;
|
||||
|
||||
$resultado = mysql_query($consulta);
|
||||
$num = @mysql_num_rows($resultado);
|
||||
|
||||
if($num > 0){
|
||||
while($rows = @mysql_fetch_array($resultado)){
|
||||
echo $rows["id"]. " (". $rows["meses"]. " meses)<br>";
|
||||
}
|
||||
} else {
|
||||
echo "-";
|
||||
}
|
||||
for($i=0;$i<count($ListaCapacidadesProfesionales->capacidad);$i++){
|
||||
$campos = $ListaCapacidadesProfesionales->capacidad[$i]->getCampos();
|
||||
$tecnologias = $ListaCapacidadesProfesionales->capacidad[$i]->getTecnologias();
|
||||
|
||||
echo "<tr>";
|
||||
echo "<td><a href=\"\" onclick=\"if(popup('gestionCapacidadProfesional.php?id=".$campos["id"]."', 'notes')) window.location.reload()\"><img src=\"css/edit.png\" title=". $locale['Capacidades009'] ."\"/></a>";
|
||||
|
||||
//
|
||||
echo "</td>";
|
||||
|
||||
echo "<td>".$campos["perfil_tecnico"]." (".$campos["meses_tecnico"]." meses)</td>";
|
||||
echo "<td>";
|
||||
for($j=0;$j<count($tecnologias);$j++){
|
||||
echo $tecnologias[$j]["id"]. " (". $tecnologias[$j]["meses"]. " meses)<br>";
|
||||
}
|
||||
echo "</td>";
|
||||
echo "<td>".$campos["perfil_funcional"]." ";
|
||||
if ($campos["meses_funcional"] > 0)
|
||||
echo "(".$campos["meses_funcional"]." meses)";
|
||||
echo "</td><td>".$campos["observaciones"]."</td></tr>";
|
||||
}
|
||||
|
||||
echo "</table>";
|
||||
} else {
|
||||
echo "<p>".$locale['Capacidades006']."</p>";
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
222
gestionCapacidadProfesional.php
Normal file
222
gestionCapacidadProfesional.php
Normal file
@ -0,0 +1,222 @@
|
||||
<?php
|
||||
//FICHERO DE IDIOMAS
|
||||
define("LOCALE", "idiomas/");
|
||||
define("LOCALESET", "sp/");
|
||||
include LOCALE.LOCALESET."lenguaje.php";
|
||||
?>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title><?php echo $locale['Capacidades004'];?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<link rel="shortcut icon" href="css/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="css/style.css" />
|
||||
<link rel="stylesheet" type="text/css" href="css/tablas.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php
|
||||
/**
|
||||
* Página que ofrece un formulario para agregar capacidades profesionales
|
||||
*
|
||||
* Hay que tener cuidado porque todas las variables que se le pasan por post son agregadas.
|
||||
*/
|
||||
include("functions.php");
|
||||
include_once("Objects/HTML.php");
|
||||
include_once("Objects/CapacidadProfesional.php");
|
||||
$html=new HTML($locale);
|
||||
|
||||
$action="";
|
||||
if($_POST['action']!=""){
|
||||
$action=$_POST['action'];
|
||||
} else {
|
||||
if($_GET['action']!=""){
|
||||
$action=$_GET['action'];
|
||||
}
|
||||
}
|
||||
|
||||
$id_capacidad="";
|
||||
if($_POST['id']!=""){
|
||||
$id_capacidad=$_POST['id'];
|
||||
} else {
|
||||
if($_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
|
||||
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'];
|
||||
$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
|
||||
$vacio=array();
|
||||
$vacio['0']="";
|
||||
$_POST['tecnologia']=array_diff_assoc($_POST['tecnologia'],$vacio);
|
||||
foreach($camposInsertar as $nombre_campo => $valor){
|
||||
if($valor!="")
|
||||
$arrayInsert[$nombre_campo]=$valor;
|
||||
}
|
||||
|
||||
// Modificamos la capacidad profesional
|
||||
try{
|
||||
$errorInsert=false;
|
||||
$capacidad->modificarCapacidad($arrayInsert);
|
||||
|
||||
$tec = array();
|
||||
$tec = $_POST['tecnologia'];
|
||||
$tec_aux = $capacidad->getTecnologias();
|
||||
foreach ($tec_aux as $fila){
|
||||
$tec[]=$fila["id_tecnologia"];
|
||||
}
|
||||
|
||||
for ($i=0; $i < count($tec); $i++){
|
||||
$caption="meses_".$tec[$i];
|
||||
$tec[$i]=$tec[$i]."-".$_POST[$caption];
|
||||
}
|
||||
|
||||
print_r ($tec);
|
||||
$capacidad->addTecnologias($tec);
|
||||
|
||||
//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){
|
||||
$tipomsg="error";
|
||||
$mensaje=$e->getMessage();
|
||||
}
|
||||
} else {
|
||||
$tipomsg="error";
|
||||
$mensaje=$errores_persona;
|
||||
}
|
||||
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";
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
echo "<h2>".$locale['Capacidades011']."</h2>";
|
||||
if($mensaje!=""){
|
||||
// Mostramos el mensaje
|
||||
echo "<div class=\"aviso ".$tipomsg."\">".$mensaje."</div>";
|
||||
}
|
||||
echo $locale['286'];
|
||||
|
||||
echo "<form action=\"gestionCapacidadProfesional.php\" method=\"POST\" enctype=\"multipart/form-data\">";
|
||||
echo "<input type=\"hidden\" name=\"action\" value=\"edit\" />";
|
||||
echo "<input type=\"hidden\" name=\"id\" value=\"".$camposCapacidad['id']."\" />";
|
||||
|
||||
echo '<div class="encabezado">'.$locale['Capacidades005'].'</div>';
|
||||
echo '<table align="center" width="100%">';
|
||||
|
||||
|
||||
echo '<tr align="center">';
|
||||
echo '<td ';
|
||||
if(in_array("23",$errores)) echo " class=\"errorcampo\"";
|
||||
echo ' textalign="right"><div style="float:left ">'.$locale['121'].' </div><div style="float:left ">';
|
||||
echo $html->listaSelect("perfil","oid","id","id_perfil_tecnico",array("",$locale['ns']),array($camposCapacidad['id_perfil_tecnico'],""),true,false,"1");
|
||||
echo '</div></td>';
|
||||
|
||||
//MESES_TECNICO
|
||||
echo '<td textalign="right">'.$locale['Capacidades008'].'<br><input type="text" name="meses_tecnico" value="'.$camposCapacidad['meses_tecnico'].'" size="10" maxlength="10"><br></td>';
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
|
||||
echo '<tr align="center">';
|
||||
echo '<td colspan="2" textalign="right" ><div style="float:left ">'.$locale['122'].' </div><div style="float:left ">';
|
||||
$tecnologias=$capacidad->getTecnologias();
|
||||
$arrayseleccion=array();
|
||||
foreach ($tecnologias as $tecnologia) {
|
||||
$arrayseleccion[] = array($tecnologia['id_tecnologia'], $tecnologia['id']);
|
||||
echo $tecnologia['id']." <a href=\"gestionCapacidadProfesional.php?id_cap=".$camposCapacidad['id']."&action=dellTec&id_tec=".$tecnologia['id_tecnologia']."\">Borrar</a><br />";
|
||||
echo '<input type="text" name="meses_'.$tecnologia["id_tecnologia"].'" value="'.$tecnologia['meses'].'" size="10" maxlength="10">';
|
||||
}
|
||||
echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$arrayseleccion,true,true,"15");
|
||||
echo '</div></td></tr>';
|
||||
|
||||
|
||||
/*
|
||||
echo '<tr align="center">
|
||||
<td textalign="right">'.$locale['122'].'</td><td align="left">';
|
||||
$tecnologias=$candidato->getTecnologias();
|
||||
$keytecnologias=array_values($tecnologias);
|
||||
// Mostramos la lista para borrar
|
||||
foreach ($tecnologias as $nombre =>$valor) {
|
||||
echo $nombre." <a href=\"gestion_candidato.php?oid=".$candidato->getValor("oid")."&action=dellTec&id=".$valor."\">Borrar</a><br />";
|
||||
}
|
||||
|
||||
echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$candidato->getTecnologias(),false,true,"15");
|
||||
|
||||
echo '</td>
|
||||
|
||||
|
||||
|
||||
</tr>';
|
||||
*/
|
||||
|
||||
|
||||
|
||||
echo '</table>';
|
||||
|
||||
echo '<div class="encabezado">'.$locale['Capacidades007'].'</div>';
|
||||
echo '<table align="center" width="100%">';
|
||||
echo '<td textalign="right"><div style="float:left ">'.$locale['Capacidades002'].' </div><div style="float:left ">';
|
||||
echo $html->listaSelect("perfil_funcional","oid","id","id_perfil_funcional",array("",$locale['ns']),array($camposCapacidad['id_perfil_funcional'],""),true,false,"1");
|
||||
echo '</div></td>';
|
||||
|
||||
//MESES_FUNCIONAL
|
||||
echo '<td textalign="right">'.$locale['Capacidades008'].'<br><input type="text" name="meses_funcional" value="'.$camposCapacidad['meses_funcional'].'" size="10" maxlength="10"><br></td>';
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
// CAMPO OBSERVACIONES
|
||||
echo '<tr><td colspan="2" align="center">'.$locale['135'].'<br><textarea name="observaciones" rows="7" cols="50" style="overflow: auto;width:100%; height:100px"">'.$camposCapacidad['observaciones'].'</textarea></td></tr>';
|
||||
|
||||
|
||||
echo '</table>';
|
||||
|
||||
echo '<input type="submit" value="'.$locale['gu'].'" class="button">';
|
||||
echo "</form>";
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</body>
|
||||
|
||||
@ -459,7 +459,8 @@ echo '</tr></table>';
|
||||
///////////////////////////
|
||||
echo '<input language="javascript" type="button" value="'.$locale['Capacidades003'].'" class="button" onclick="if(popup(\'addCapacidadProfesional.php?id_candidato='.$candidato->getValor("oid").'\', \'notes\')) window.location.reload()">';
|
||||
echo '<div class="encabezado">'.$locale['Capacidades001'].'</div>';
|
||||
lista_capacidades(8,'candidato');
|
||||
$CapacidadesProfesionales = $candidato->getCapacidadesProfesionales();
|
||||
VerListaCapacidadesProfesionales($CapacidadesProfesionales);
|
||||
|
||||
|
||||
|
||||
@ -476,40 +477,6 @@ echo '<input type="hidden" name="MAX_FILE_SIZE" value="10000000"><td colspan="6"
|
||||
echo '<input name="userfile" type="file">';
|
||||
echo '</td></tr></table>';
|
||||
|
||||
/*
|
||||
echo '<td ';
|
||||
if(in_array("23",$errores)) echo " class=\"errorcampo\"";
|
||||
echo ' textalign="right" '.$eper.'><div style="float:left ">'.$locale['121'].'</div><div style="float:left ">';
|
||||
$auxiliar = '<option selected value="">'.$locale['ns'].'</option>';
|
||||
$perfiles=$candidato->getPerfiles();
|
||||
$keyidiomas=array_values($perfiles);
|
||||
// Mostramos la lista para borrar
|
||||
foreach ($perfiles as $nombre =>$valor) {
|
||||
echo $nombre." <a href=\"gestion_candidato.php?oid=".$candidato->getValor("oid")."&action=dellPer&id=".$valor."\">Borrar</a><br />";
|
||||
}
|
||||
|
||||
echo $html->listaSelect("perfil","oid","id","perfil",array("",$locale['ns']),$candidato->getPerfiles(),false,true,"15");
|
||||
|
||||
echo '</div></td>';
|
||||
*/
|
||||
/*
|
||||
echo '<tr align="center">
|
||||
<td textalign="right">'.$locale['122'].'</td><td align="left">';
|
||||
$tecnologias=$candidato->getTecnologias();
|
||||
$keytecnologias=array_values($tecnologias);
|
||||
// Mostramos la lista para borrar
|
||||
foreach ($tecnologias as $nombre =>$valor) {
|
||||
echo $nombre." <a href=\"gestion_candidato.php?oid=".$candidato->getValor("oid")."&action=dellTec&id=".$valor."\">Borrar</a><br />";
|
||||
}
|
||||
|
||||
echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$candidato->getTecnologias(),false,true,"15");
|
||||
|
||||
echo '</td>
|
||||
|
||||
|
||||
|
||||
</tr>';
|
||||
*/
|
||||
|
||||
echo '<div class="encabezado">'.$locale['1552'].'</div>';
|
||||
?>
|
||||
|
||||
@ -152,6 +152,12 @@ $locale['Capacidades002'] = "Perfil funcional";
|
||||
$locale['Capacidades003'] = "Nueva capacidad profesional";
|
||||
$locale['Capacidades004'] = "CAPACIDAD PROFESIONAL";
|
||||
$locale['Capacidades005'] = "CAPACIDAD TÉCNICA";
|
||||
$locale['Capacidades006'] = "No tiene capacidades profesionales";
|
||||
$locale['Capacidades007'] = "CAPACIDAD FUNCIONAL";
|
||||
$locale['Capacidades008'] = "meses";
|
||||
$locale['Capacidades009'] = "Editar capacidad";
|
||||
$locale['Capacidades010'] = "Se ha modificado el candidato correctamente";
|
||||
$locale['Capacidades011'] = "Editando Capacidad Profesional";
|
||||
|
||||
//Historial:
|
||||
$locale['150'] = "Modificados: ";
|
||||
|
||||
@ -143,9 +143,9 @@ 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 el Administrador puede eliminar para estados 10,20,50,40,60
|
||||
$estadoSiEliminar=array("510","520","522","523","530", "540");
|
||||
if(($usuario->tieneRol("1") || $usuario->tieneRol("4")) && (in_array($pedidoAct->getValor("estado"),$estadoSiEliminar))){
|
||||
// Sólo se puede eliminar candidatos en los siguientes estados
|
||||
$estadoSiEliminar=array("510","521","522","523","540");
|
||||
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>
|
||||
<?php
|
||||
|
||||
@ -38,7 +38,7 @@ if (!empty($action)) {
|
||||
if (!empty($_GET['idCand'])) {
|
||||
try {
|
||||
$idCand = $_GET['idCand'];
|
||||
$estado = $oferta->colocarCandidato($idCand);
|
||||
$estado = $oferta->asignarCandidato($idCand);
|
||||
|
||||
if ($estado) {
|
||||
$tipo = "ok";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user