Ticket #563 -> En la pantalla de búsqueda de pedidos (solicitudes), se debe poder elegir varios perfiles técnicos
Ticket #565 -> En una solicitud de oferta, se deben poder indicar varios perfiles técnicos git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk@21 e2b1556b-49f8-d141-9351-52d6861a72d9
This commit is contained in:
parent
3ddc27061a
commit
feb9b6f4b1
@ -26,10 +26,10 @@
|
||||
private $tecnologiasUsuario;
|
||||
|
||||
/* Perfil que requiere el pedido. */
|
||||
private $perfilPedido;
|
||||
private $perfilesPedido;
|
||||
|
||||
/* Perfiles que posee el usuario. */
|
||||
private $perfilUsuario;
|
||||
private $perfilesUsuario;
|
||||
|
||||
/* Provincias donde se desarrollará el proyecto del pedido. */
|
||||
private $provinciasPedido;
|
||||
@ -39,13 +39,13 @@
|
||||
|
||||
//Constructores
|
||||
function Afinidad($idiomasPedido, $idiomasUsuario, $tecnologiasPedido,
|
||||
$tecnologiasUsuario, $perfilPedido, $perfilUsuario, $provinciasPedido, $provinciaDeseada){
|
||||
$tecnologiasUsuario, $perfilesPedido, $perfilesUsuario, $provinciasPedido, $provinciaDeseada){
|
||||
$this->idiomasPedido = $idiomasPedido;
|
||||
$this->idiomasUsuario = $idiomasUsuario;
|
||||
$this->tecnologiasPedido = $tecnologiasPedido;
|
||||
$this->tecnologiasUsuario = $tecnologiasUsuario;
|
||||
$this->perfilPedido = $perfilPedido;
|
||||
$this->perfilUsuario = $perfilUsuario;
|
||||
$this->perfilesPedido = $perfilesPedido;
|
||||
$this->perfilesUsuario = $perfilesUsuario;
|
||||
$this->provinciasPedido = $provinciasPedido;
|
||||
$this->provinciaDeseada = $provinciaDeseada;
|
||||
|
||||
@ -59,7 +59,11 @@
|
||||
* @param pedido - pedido para el que calcular la afinidad.
|
||||
*/
|
||||
function calculaAfinidad($pI, $pP, $pT){
|
||||
|
||||
$vL = 0;
|
||||
$vI = 0;
|
||||
$vP = 0;
|
||||
$vT = 0;
|
||||
|
||||
//Si no coincide alguna provincia deseada no nos vale.
|
||||
if($this->provinciasPedido != ""){
|
||||
foreach($this->provinciasPedido as $provincia){
|
||||
@ -74,8 +78,8 @@
|
||||
$afi = 0;
|
||||
|
||||
//Afinidad con los perfiles:
|
||||
if(count($this->perfilUsuario) > 0){
|
||||
if(in_array($this->perfilPedido, $this->perfilUsuario)){
|
||||
if(count($this->perfilesUsuario) > 0){
|
||||
if(in_array($this->perfilesPedido, $this->perfilesUsuario)){
|
||||
$vP = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -177,7 +177,7 @@ include_once("Objects/Pedido.php");
|
||||
//Calculamos el id
|
||||
$id = $this->calculaIdProyecto($campos["procedencia"], $campos["cliente"]);
|
||||
$inserto = "oid, fecha";
|
||||
$fecha = "'".date(Y."-".m."-".d)."'";
|
||||
$fecha = "'".date("Y-m-d")."'";
|
||||
$valores = "$id, $fecha";
|
||||
|
||||
//Procesamos los datos
|
||||
|
||||
@ -33,6 +33,9 @@ include_once("Automata.php");
|
||||
/* Lista de candidatos rechazados*/
|
||||
private $listaRechazados = null;
|
||||
|
||||
/* Lista de perfiles*/
|
||||
private $listaPerfiles = null;
|
||||
|
||||
/* Lista de tecnologías*/
|
||||
private $listaTecnologias = null;
|
||||
|
||||
@ -306,6 +309,8 @@ include_once("Automata.php");
|
||||
* Calcula una lista de candidatos de un estado.
|
||||
*/
|
||||
private function getCandidatos($estado){
|
||||
$lista = array();
|
||||
|
||||
$pedido = $this->getValor("oid");
|
||||
$consulta = "SELECT A.*,B.*,C.email,C.oid,C.nombre,C.apellidos,C.fecha_alta, D.nombre as estado_usuario FROM candidato_pedido as A, candidaturas_estado as B, usuarios as C, candidatos_estados as D WHERE A.pedido = '$pedido' and A.estado = B.cod and B.cod='$estado' and C.oid=A.candidato and D.cod = C.estado ORDER BY A.afinidad DESC";
|
||||
$bd = new BD();
|
||||
@ -660,18 +665,32 @@ include_once("Automata.php");
|
||||
return $this->listaIdiomas;
|
||||
}
|
||||
|
||||
/**
|
||||
* Devuelve una lista de perfiles asociados al pedido.
|
||||
*/
|
||||
function getPerfiles(){
|
||||
if($this->listaPerfiles == null){
|
||||
$oid = $this->getValor("oid");
|
||||
$consulta = "SELECT perfil, id FROM perfil_pedido, perfil WHERE oid_i = '$oid' and perfil_pedido.perfil = perfil.oid";
|
||||
$bd = new BD();
|
||||
$this->listaPerfiles = $bd->keyValueQuery($consulta, "id", "perfil");
|
||||
}
|
||||
|
||||
return $this->listaPerfiles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Devuelve una lista de provincias asociadas al pedido.
|
||||
*/
|
||||
function getProvincias(){
|
||||
if($this->listasProvincias == null){
|
||||
if($this->listaProvincias == null){
|
||||
$oid = $this->getValor("oid");
|
||||
$consulta = "SELECT provincia, id FROM provincia_pedido, provincias WHERE oid_i = '$oid' and provincia_pedido.provincia = provincias.oid";
|
||||
$bd = new BD();
|
||||
$this->listasProvincias = $bd->keyValueQuery($consulta, "id", "provincia");
|
||||
$this->listaProvincias = $bd->keyValueQuery($consulta, "id", "provincia");
|
||||
}
|
||||
|
||||
return $this->listasProvincias;
|
||||
return $this->listaProvincias;
|
||||
}
|
||||
|
||||
function addTecnologias($array){
|
||||
@ -696,6 +715,15 @@ include_once("Automata.php");
|
||||
$this->calculaAfinidad();
|
||||
}
|
||||
|
||||
function addPerfiles($array){
|
||||
if(gettype($array) == "array"){
|
||||
foreach($array as $elem){
|
||||
$this->addPerfil($elem);
|
||||
}
|
||||
$this->calculaAfinidad();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Asocia una nueva tecnología en la base de datos.
|
||||
*/
|
||||
@ -748,6 +776,32 @@ include_once("Automata.php");
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Asocia un nuevo perfil en la base de datos.
|
||||
*/
|
||||
private function addPerfil($id){
|
||||
$oid = $this->getValor("oid");
|
||||
$this->getPerfiles();
|
||||
if(!in_array($id, $this->listaPerfiles)){
|
||||
$consulta = "SELECT id FROM perfil WHERE oid='$id'";
|
||||
$bd = new BD();
|
||||
$nombre_perfil = $bd->getCampo($consulta);
|
||||
$consulta = "INSERT INTO perfil_pedido VALUES('$id', '$oid')";
|
||||
$bd = new BD();
|
||||
if($bd->execQuery($consulta)){
|
||||
$mensaje = "Nuevo perfil: $nombre_perfil";
|
||||
$this->actualizarHistorial($mensaje);
|
||||
$this->listaPerfiles[$nombre_perfil] = $id;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Asocia una nueva provincia en la base de datos.
|
||||
*/
|
||||
@ -873,6 +927,40 @@ include_once("Automata.php");
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Elimina la asociación entre un perfil y un pedido.
|
||||
*/
|
||||
function removePerfil($id){
|
||||
$oid = $this->getValor("oid");
|
||||
$this->getPerfiles();
|
||||
if(in_array($id, $this->listaPerfiles)){
|
||||
$consulta = "SELECT id FROM perfil WHERE oid='$id'";
|
||||
$bd = new BD();
|
||||
$nombre_perfil = $bd->getCampo($consulta);
|
||||
$consulta = "DELETE FROM perfil_pedido WHERE perfil='$id' and oid_i='$oid'";
|
||||
$bd = new BD();
|
||||
if($bd->execQuery($consulta)){
|
||||
$mensaje = "Eliminado perfil: $nombre_perfil";
|
||||
$this->actualizarHistorial($mensaje);
|
||||
$lista = $this->listaPerfiles;
|
||||
$this->listaPerfiles = null;
|
||||
foreach($lista as $key => $value){
|
||||
if($value != $id){
|
||||
$this->listaPerfiles[$key] = $value;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->calculaAfinidad();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Calcula la afinidad del pedido con todos los candidatos del sistema.
|
||||
* @param id - identificador del usuario.
|
||||
@ -904,12 +992,12 @@ include_once("Automata.php");
|
||||
$idiomasUsuario = $usuario->getidiomas();
|
||||
$tecnologiasPedido = $this->getTecnologias();
|
||||
$tecnologiasUsuario = $usuario->getTecnologias();
|
||||
$perfilPedido = $this->getValor("perfil");
|
||||
$perfilUsuario = $usuario->getPerfiles();
|
||||
$perfilesPedido = $this->getPerfiles();
|
||||
$perfilesUsuario = $usuario->getPerfiles();
|
||||
$provinciasPedido = $this->getProvincias();
|
||||
$provinciasDeseadas = $usuario->getProvinciasDeseadas();
|
||||
$afinidad = new Afinidad($idiomasPedido, $idiomasUsuario, $tecnologiasPedido,
|
||||
$tecnologiasUsuario, $perfilPedido, $perfilUsuario, $provinciasPedido, $provinciasDeseadas);
|
||||
$tecnologiasUsuario, $perfilesPedido, $perfilesUsuario, $provinciasPedido, $provinciasDeseadas);
|
||||
$afi = $afinidad->calculaAfinidad($pesoIdioma, $pesoPerfil, $pesoTecno);
|
||||
if($afi >= 0){
|
||||
$consulta = "INSERT INTO candidato_pedido (candidato, pedido, afinidad, estado, fecha) VALUES('$idUsuario', '$id', '$afi', '30', curdate())";
|
||||
|
||||
@ -14,105 +14,128 @@ if(!$usuario->tieneRol("3")&&!$usuario->tieneRol("1")){
|
||||
$errores = array();
|
||||
|
||||
// Todas las variables
|
||||
$nombre=$_POST['nombre'];
|
||||
$prioridad=$_POST['prioridad'];
|
||||
$empleados=$_POST['empleados'];
|
||||
$duracion=$_POST['duracion'];
|
||||
$clientes=$_POST['clientes'];
|
||||
$perfil=$_POST['perfil'];
|
||||
$salario_min=$_POST['salario_min'];
|
||||
$salario_max=$_POST['salario_max'];
|
||||
$procedencia=$_POST['procedencia'];
|
||||
$tecnologias=$_POST['tecnologia'];
|
||||
$idiomas=$_POST['idiomas'];
|
||||
$provincias=$_POST['provincias'];
|
||||
$observaciones=$_POST['observaciones'];
|
||||
$pesoTec=$_POST['pesoTec'];
|
||||
$pesoIdi=$_POST['pesoIdi'];
|
||||
$pesoPer=$_POST['pesoPer'];
|
||||
if(!empty($_POST)) {
|
||||
$nombre=$_POST['nombre'];
|
||||
$prioridad=$_POST['prioridad'];
|
||||
$empleados=$_POST['empleados'];
|
||||
$duracion=$_POST['duracion'];
|
||||
$clientes=$_POST['clientes'];
|
||||
$perfiles=$_POST['perfil'];
|
||||
$salario_min=$_POST['salario_min'];
|
||||
$salario_max=$_POST['salario_max'];
|
||||
$procedencia=$_POST['procedencia'];
|
||||
$tecnologias=$_POST['tecnologia'];
|
||||
$idiomas=$_POST['idiomas'];
|
||||
$provincias=$_POST['provincias'];
|
||||
$observaciones=$_POST['observaciones'];
|
||||
$pesoTec=$_POST['pesoTec'];
|
||||
$pesoIdi=$_POST['pesoIdi'];
|
||||
$pesoPer=$_POST['pesoPer'];
|
||||
|
||||
if($usuario->tieneRol("1")){
|
||||
$gerente=$_POST['gerente'];
|
||||
|
||||
if($usuario->tieneRol("1")){
|
||||
$gerente=$_POST['gerente'];
|
||||
} else {
|
||||
$gerente=$usuario->getValor("oid");
|
||||
}
|
||||
|
||||
if($_POST['action']=="add"){
|
||||
// Comprobamos campos obligatorios
|
||||
if($nombre==""){
|
||||
$errores[]= "1";
|
||||
}
|
||||
if(($prioridad=="") ||($empleados=="") || ($duracion=="") || (!($empleados>0)) ||(!($duracion>0))){
|
||||
$errores[]= "2";
|
||||
}
|
||||
if($gerente==""){
|
||||
$errores[]= "3";
|
||||
}
|
||||
if($clientes==""){
|
||||
$errores[]= "4";
|
||||
}
|
||||
if($perfiles==""){
|
||||
$errores[]= "5";
|
||||
}
|
||||
if(($salario_min=="") ||($salario_max=="") || ($salario_min>$salario_max)){
|
||||
$errores[]= "6";
|
||||
}
|
||||
if($procedencia==""){
|
||||
$errores[]= "7";
|
||||
}
|
||||
|
||||
if(($pesoTec=="") ||($pesoIdi=="") || ($pesoPer=="")
|
||||
|| !is_numeric($pesoTec) || !is_numeric($pesoIdi) || !is_numeric($pesoPer)
|
||||
|| (!($pesoTec>=0)) ||(!($pesoIdi>=0)) || (!($pesoPer>=0))
|
||||
|| ($pesoTec + $pesoIdi + $pesoPer != 100)){
|
||||
$errores[]="8";
|
||||
}
|
||||
// Si no hay errores insertamos el pedido
|
||||
if(count($errores)==0){
|
||||
include_once("Objects/ListaPedido.php");
|
||||
$listaPedidos=new ListaPedido($usuario,"","","0");
|
||||
$arrayInsert=array();
|
||||
$arrayInsert["nombre"]=$nombre;
|
||||
$arrayInsert["prioridad"]= $prioridad;
|
||||
$arrayInsert["empleados"]=$empleados;
|
||||
$arrayInsert["duracion"]=$duracion;
|
||||
$arrayInsert["gerente"]=$gerente;
|
||||
$arrayInsert["cliente"]=$clientes;
|
||||
$arrayInsert["salario_min"]=$salario_min;
|
||||
$arrayInsert["salario_max"]=$salario_max;
|
||||
$arrayInsert["procedencia"]=$procedencia;
|
||||
$arrayInsert["observaciones"]=$observaciones;
|
||||
$arrayInsert["estado"]="10";
|
||||
$arrayInsert["pesoIdioma"]=$pesoIdi;
|
||||
$arrayInsert["pesoPerfil"]=$pesoPer;
|
||||
$arrayInsert["pesoTecno"]=$pesoTec;
|
||||
$idPedido=$listaPedidos->addPedido($arrayInsert);
|
||||
if($idPedido=="-1"){
|
||||
// Se he producido un fallo al insertar
|
||||
$errores[]= "0";
|
||||
$msg="No se ha podido agregar el pedido";
|
||||
$tipo="error";
|
||||
} else {
|
||||
$pedido=$listaPedidos->buscarPedido($idPedido);
|
||||
print_r($perfiles);
|
||||
$pedido->addPerfiles($perfiles);
|
||||
$pedido->addTecnologias($tecnologias);
|
||||
$pedido->addIdiomas($idiomas);
|
||||
$pedido->addProvincias($provincias);
|
||||
header("Location: pedido.php?idPedido=".$idPedido."&msg=1");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$gerente=$usuario->getValor("oid");
|
||||
}
|
||||
if($_POST['action']=="add"){
|
||||
// Comprobamos campos obligatorios
|
||||
if($nombre==""){
|
||||
$errores[]= "1";
|
||||
}
|
||||
if(($prioridad=="") ||($empleados=="") || ($duracion=="") || (!($empleados>0)) ||(!($duracion>0))){
|
||||
$errores[]= "2";
|
||||
}
|
||||
if($gerente==""){
|
||||
$errores[]= "3";
|
||||
}
|
||||
if($clientes==""){
|
||||
$errores[]= "4";
|
||||
}
|
||||
if($perfil==""){
|
||||
$errores[]= "5";
|
||||
}
|
||||
if(($salario_min=="") ||($salario_max=="") || ($salario_min>$salario_max)){
|
||||
$errores[]= "6";
|
||||
}
|
||||
if($procedencia==""){
|
||||
$errores[]= "7";
|
||||
}
|
||||
|
||||
if(($pesoTec=="") ||($pesoIdi=="") || ($pesoPer=="")
|
||||
|| !is_numeric($pesoTec) || !is_numeric($pesoIdi) || !is_numeric($pesoPer)
|
||||
|| (!($pesoTec>=0)) ||(!($pesoIdi>=0)) || (!($pesoPer>=0))
|
||||
|| ($pesoTec + $pesoIdi + $pesoPer != 100)){
|
||||
$errores[]="8";
|
||||
}
|
||||
// Si no hay errores insertamos el pedido
|
||||
if(count($errores)==0){
|
||||
include_once("Objects/ListaPedido.php");
|
||||
$listaPedidos=new ListaPedido($usuario,"","","0");
|
||||
$arrayInsert=array();
|
||||
$arrayInsert["nombre"]=$nombre;
|
||||
$arrayInsert["prioridad"]= $prioridad;
|
||||
$arrayInsert["empleados"]=$empleados;
|
||||
$arrayInsert["duracion"]=$duracion;
|
||||
$arrayInsert["gerente"]=$gerente;
|
||||
$arrayInsert["perfil"]=$perfil;
|
||||
$arrayInsert["cliente"]=$clientes;
|
||||
$arrayInsert["salario_min"]=$salario_min;
|
||||
$arrayInsert["salario_max"]=$salario_max;
|
||||
$arrayInsert["procedencia"]=$procedencia;
|
||||
$arrayInsert["observaciones"]=$observaciones;
|
||||
$arrayInsert["estado"]="10";
|
||||
$arrayInsert["pesoIdioma"]=$pesoIdi;
|
||||
$arrayInsert["pesoPerfil"]=$pesoPer;
|
||||
$arrayInsert["pesoTecno"]=$pesoTec;
|
||||
$idPedido=$listaPedidos->addPedido($arrayInsert);
|
||||
if($idPedido=="-1"){
|
||||
// Se he producido un fallo al insertar
|
||||
$errores[]= "0";
|
||||
$msg="No se ha podido agregar el pedido";
|
||||
$tipo="error";
|
||||
} else {
|
||||
$pedido=$listaPedidos->buscarPedido($idPedido);
|
||||
$pedido->addTecnologias($tecnologias);
|
||||
$pedido->addIdiomas($idiomas);
|
||||
$pedido->addProvincias($provincias);
|
||||
header("Location: pedido.php?idPedido=".$idPedido."&msg=1");
|
||||
}
|
||||
}
|
||||
$nombre="";
|
||||
$prioridad="";
|
||||
$empleados="";
|
||||
$duracion="";
|
||||
$clientes="";
|
||||
$perfiles=array();
|
||||
$salario_min="";
|
||||
$salario_max="";
|
||||
$procedencia="";
|
||||
$tecnologias=array();
|
||||
$idiomas=array();
|
||||
$provincias=array();
|
||||
$observaciones="";
|
||||
$pesoTec="";
|
||||
$pesoIdi="";
|
||||
$pesoPer="";
|
||||
}
|
||||
|
||||
include("html/cabecera.php");
|
||||
|
||||
if($pesoTec=="") $pesoTec="40";
|
||||
if($pesoIdi=="") $pesoIdi="10";
|
||||
if($pesoPer=="") $pesoPer="50";
|
||||
if ((isset($pesoTec)) && ($pesoTec=="")) $pesoTec="40";
|
||||
if ((isset($pesoIdi)) && ($pesoIdi=="")) $pesoIdi="10";
|
||||
if ((isset($pesoPer)) && ($pesoPer=="")) $pesoPer="50";
|
||||
|
||||
echo $html->menuPedidos($usuario,"");
|
||||
|
||||
|
||||
echo "<h2>".$locale['1058']."</h2>";
|
||||
if($msg!=""){
|
||||
|
||||
if (isset($msg) && ($msg != "")) {
|
||||
echo "<div class=\"aviso ".$tipo."\">".$msg."</div>";
|
||||
}
|
||||
echo '<form method="POST" action="addPedido.php" name="form_registro" enctype="multipart/form-data">';
|
||||
@ -148,8 +171,9 @@ echo ">".$locale['1504'];
|
||||
rellena_desplegable_select_oid("clientes","clientes",$auxiliar,$clientes);
|
||||
echo "</td><td";
|
||||
if(in_array("5",$errores)) echo " class=\"errorcampo\"";
|
||||
echo ">".$locale['121'];
|
||||
rellena_desplegable_select_oid("perfil","perfil",$auxiliar,$perfil);
|
||||
echo ">".$locale['121']."<br/>";
|
||||
// Ticket #565 -> En una solicitud de oferta, se deben poder indicar varios perfiles técnicos
|
||||
echo $html->listaSelect("perfil","oid","id","perfil",array("",$locale['ns']),$tecnologias,true,true,"15");
|
||||
echo "</td><td>".$locale['132'].": ".$locale['2100'];
|
||||
|
||||
echo "</td></tr>";
|
||||
|
||||
@ -83,4 +83,4 @@ echo $html->menuPedidos($usuario,"");
|
||||
</form>
|
||||
<?php
|
||||
include_once("html/pie.php");
|
||||
?>
|
||||
?>
|
||||
|
||||
@ -674,7 +674,6 @@ CREATE TABLE `pedidos` (
|
||||
`fecha` date NOT NULL,
|
||||
`nombre` varchar(30) COLLATE latin1_spanish_ci NOT NULL,
|
||||
`cliente` int(10) unsigned NOT NULL,
|
||||
`perfil` int(10) unsigned NOT NULL,
|
||||
`duracion` int(11) NOT NULL,
|
||||
`empleados` tinyint(3) unsigned NOT NULL,
|
||||
`observaciones` text COLLATE latin1_spanish_ci NOT NULL,
|
||||
@ -691,14 +690,12 @@ CREATE TABLE `pedidos` (
|
||||
`msgEstado` text COLLATE latin1_spanish_ci NOT NULL,
|
||||
PRIMARY KEY (`oid`),
|
||||
KEY `cliente` (`cliente`),
|
||||
KEY `perfil` (`perfil`),
|
||||
KEY `gerente` (`gerente`),
|
||||
KEY `salario_min` (`salario_min`),
|
||||
KEY `salario_max` (`salario_max`),
|
||||
KEY `estado` (`estado`),
|
||||
KEY `procedencia` (`procedencia`),
|
||||
CONSTRAINT `pedidos_ibfk_1` FOREIGN KEY (`cliente`) REFERENCES `clientes` (`oid`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `pedidos_ibfk_29` FOREIGN KEY (`perfil`) REFERENCES `perfil` (`oid`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `pedidos_ibfk_30` FOREIGN KEY (`gerente`) REFERENCES `usuarios` (`oid`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `pedidos_ibfk_31` FOREIGN KEY (`estado`) REFERENCES `pedidos_estados` (`cod`),
|
||||
CONSTRAINT `pedidos_ibfk_32` FOREIGN KEY (`procedencia`) REFERENCES `procedencia` (`num`) ON UPDATE CASCADE
|
||||
@ -794,6 +791,23 @@ INSERT INTO `perfil` VALUES (1,'Administrador de Sistemas','ADMIN. SIST.'),(2,'A
|
||||
/*!40000 ALTER TABLE `perfil` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `perfil_pedido`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `perfil_pedido`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `perfil_pedido` (
|
||||
`perfil` int(10) unsigned NOT NULL,
|
||||
`oid_i` varchar(8) COLLATE latin1_spanish_ci NOT NULL,
|
||||
PRIMARY KEY (`perfil`,`oid_i`),
|
||||
KEY `oid_i` (`oid_i`),
|
||||
CONSTRAINT `perfil_pedido_ibfk_1` FOREIGN KEY (`perfil`) REFERENCES `perfil` (`oid`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `perfil_pedido_ibfk_2` FOREIGN KEY (`oid_i`) REFERENCES `pedidos` (`oid`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `perfil_usuario`
|
||||
--
|
||||
|
||||
@ -14,10 +14,15 @@ if(!$usuario->tieneRol("4")
|
||||
|
||||
include_once("Objects/Candidato.php");
|
||||
|
||||
try{
|
||||
$persona=new Candidato($usuario,stripinput($_GET['oid']));
|
||||
try {
|
||||
$oid = "";
|
||||
if (isset($_GET['oid'])) {
|
||||
$oid = stripinput($_GET['oid']);
|
||||
}
|
||||
$persona = new Candidato($usuario, $oid);
|
||||
|
||||
$mensaje="";
|
||||
$mensaje = "";
|
||||
|
||||
// Comprobamos mensajes que pueden llegar hasta aqui
|
||||
switch ($_GET['msg']) {
|
||||
case "1":$mensaje="<div class=\"aviso ok\">".$locale['1085']."</div>";
|
||||
|
||||
@ -17,13 +17,16 @@ if(($pedido->getValor("gerente")!=$usuario->getValor("oid"))
|
||||
|
||||
// Comprobamos si estamos haciendo algo
|
||||
$action="";
|
||||
if($_POST['action']!=""){
|
||||
$action=$_POST['action'];
|
||||
} else {
|
||||
if($_GET['action']!=""){
|
||||
$action=$_GET['action'];
|
||||
if (isset($_POST['action']) || isset($_GET['action'])) {
|
||||
if (isset($_POST['action']) && ($_POST['action']!="")) {
|
||||
$action = $_POST['action'];
|
||||
} else {
|
||||
if (isset($_GET['action']) && ($_GET['action']!="")) {
|
||||
$action = $_GET['action'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$errores = array();
|
||||
$mensaje="";
|
||||
|
||||
@ -55,7 +58,6 @@ switch ($action) {
|
||||
$pedido->setCampo("duracion",$_POST['duracion']);
|
||||
$pedido->setCampo("gerente",$_POST['gerente']);
|
||||
$pedido->setCampo("cliente",$_POST['clientes']);
|
||||
$pedido->setCampo("perfil",$_POST['perfil']);
|
||||
$pedido->setCampo("salario_min",$_POST['salario_min']);
|
||||
$pedido->setCampo("salario_max",$_POST['salario_max']);
|
||||
$pedido->setCampo("procedencia",$_POST['procedencia']);
|
||||
@ -63,6 +65,7 @@ switch ($action) {
|
||||
$pedido->setCampo("pesoPerfil",$pesoPer);
|
||||
$pedido->setCampo("pesoTecno",$pesoTec);
|
||||
|
||||
$pedido->addPerfiles($_POST['perfil']);
|
||||
$pedido->addTecnologias($_POST['tecnologia']);
|
||||
$pedido->addIdiomas($_POST['idiomas']);
|
||||
$pedido->addProvincias($_POST['provincias']);
|
||||
@ -86,6 +89,10 @@ switch ($action) {
|
||||
$pedido->removeProvincia($idAction);
|
||||
$mensaje=$locale['1089'];
|
||||
break;
|
||||
case "dellPer": $idAction=$_GET['id'];
|
||||
$pedido->removePerfil($idAction);
|
||||
$mensaje=$locale['1090'];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -121,8 +128,28 @@ echo "</td></tr>" .
|
||||
" <tr><td>".$locale['1504'];
|
||||
$auxiliar = '<option selected value="">'.$locale['ns'].'</option>';
|
||||
rellena_desplegable_select_oid("clientes","clientes",$auxiliar,$pedido->getValor("cliente"));
|
||||
echo "</td><td>".$locale['121'];
|
||||
rellena_desplegable_select_oid("perfil","perfil",$auxiliar,$pedido->getValor("perfil"));
|
||||
echo "</td><td>".$locale['121']."<br/>";
|
||||
|
||||
$perfiles=$pedido->getPerfiles();
|
||||
$keyperfiles=array_values($perfiles);
|
||||
// Mostramos la lista para borrar
|
||||
if(count($perfiles)>0){
|
||||
foreach ($perfiles as $nombre =>$valor) {
|
||||
echo $nombre." <a href=\"gestion_pedido.php?idPedido=".$pedido->getValor("oid")."&action=dellPer&id=".$valor."\">Borrar</a><br />";
|
||||
}
|
||||
} else {
|
||||
?>
|
||||
<span class="errorcampo"><?php if($pedido->getValor("pesoPerfil") > 0) echo $locale['1097'];?></span><br />
|
||||
<?php
|
||||
}
|
||||
echo $html->listaSelect("perfil","oid","id","perfil",array("",$locale['ns']),$keyperfiles,false,true,"15");
|
||||
|
||||
|
||||
|
||||
|
||||
//rellena_desplegable_select_oid("perfil","perfil",$auxiliar,$pedido->getValor("perfil"));
|
||||
|
||||
|
||||
echo "</td><td>".$locale['132'].$pedido->getValor("nombre_estado");
|
||||
|
||||
echo "</td></tr>";
|
||||
|
||||
@ -23,15 +23,15 @@ echo "<h2>".$locale['1006']."</h2>";
|
||||
// Recuperamos la lista de los pedidos
|
||||
// Variables por si es una ordenacion
|
||||
$order_by="";
|
||||
if($_GET["order"]!=""){
|
||||
|
||||
if (isset($_GET["order"]) && ($_GET["order"]!="")) {
|
||||
$order_by = " ORDER by ".stripinput($_GET["order"])." ".$_GET["modo"];
|
||||
}
|
||||
$modo = stripinput($_GET["modo"]);
|
||||
if($_GET['byEstado']!=""){
|
||||
$tipoPedidos=$_GET['byEstado'];
|
||||
} else {
|
||||
$tipoPedidos="10";
|
||||
}
|
||||
|
||||
$modo = (isset($_GET["modo"])) ? stripinput($_GET["modo"]) : "";
|
||||
|
||||
$tipoPedidos = (isset($_GET["byEstado"]) && ($_GET['byEstado'] != "")) ? $_GET['byEstado'] : "10";
|
||||
|
||||
$listaPedidos=new ListaPedido($usuario,$order_by,"",$tipoPedidos);
|
||||
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
include("seguridad.php");
|
||||
include("functions.php");
|
||||
|
||||
$idPedido = stripinput($_GET["idPedido"]);
|
||||
$idPedido = isset($_GET["idPedido"]) ? stripinput($_GET["idPedido"]) : "";
|
||||
if(!isset($tabla)) $tabla = stripinput($_POST["tabla"]);
|
||||
if(!isset($where)) $where = stripinput($_POST["where"]);
|
||||
if(!isset($condicion)) $condicion = stripinput($_POST["condicion"]);
|
||||
|
||||
@ -13,16 +13,22 @@ if(stripos($destinoURL,"?")>0){
|
||||
}
|
||||
|
||||
// Comprobamos mensajes que pueden llegar hasta aqui
|
||||
switch ($_GET['msg']) {
|
||||
case "1":$mensaje="<div class=\"aviso ok\">".$locale['1059']."</div>";
|
||||
break;
|
||||
case "2":$mensaje="<div class=\"aviso error\">".$locale['1060']."</div>";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
if (isset($_GET['msg'])) {
|
||||
switch ($_GET['msg']) {
|
||||
case "1":$mensaje="<div class=\"aviso ok\">".$locale['1059']."</div>";
|
||||
break;
|
||||
case "2":$mensaje="<div class=\"aviso error\">".$locale['1060']."</div>";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
echo $mensaje;
|
||||
if (isset($mensaje)) echo $mensaje;
|
||||
|
||||
if (!isset($variablesExtra)) $variablesExtra = "";
|
||||
|
||||
|
||||
?>
|
||||
<div style="float:left; padding-top:10px; border-top:1px solid #CCC; border-left:1px solid #CCC; border-right:1px solid #CCC;background-color:#F0F0F0">
|
||||
<ul id="tabnav">
|
||||
@ -155,7 +161,16 @@ if(count($listadePedidos)==0){
|
||||
echo '<td align="center">'.$pedidoAct->getValor("nombre").'</td>';
|
||||
echo '<td align="center">'.$pedidoAct->getValor("nombre_estado").'</td>';
|
||||
echo '<td align="center">'.nombre_cliente($pedidoAct->getValor("cliente")).'</td>';
|
||||
echo '<td align="center">'.nombre_perfil($pedidoAct->getValor("perfil")).'</td>';
|
||||
|
||||
echo '<td align="center">';
|
||||
$perfiles=$pedidoAct->getPerfiles();
|
||||
$keyperfiles=array_values($perfiles);
|
||||
// Mostramos la lista para borrar
|
||||
foreach ($perfiles as $nombre =>$valor) {
|
||||
echo $nombre.", ";
|
||||
}
|
||||
echo '</td>';
|
||||
|
||||
echo '<td align="center">'.$pedidoAct->getValor("empleados").'</td>';
|
||||
echo '<td align="center">'.$pedidoAct->dameNumCand("Aceptado").'</td>';
|
||||
echo "</tr>";
|
||||
@ -163,7 +178,7 @@ if(count($listadePedidos)==0){
|
||||
// Comprobamos si tenemos que mostar una paginación
|
||||
$numPaginas=ceil(count($listadePedidos)/constante("lista"));
|
||||
echo "<td colspan=\"11\"><div id=\"cronopaginacion\">";
|
||||
if($_GET["order"]!=""){
|
||||
if (isset($_GET["order"]) && ($_GET["order"] != "")) {
|
||||
if($variablesExtra!=""){
|
||||
$variablesExtra="&".$variablesExtra;
|
||||
}
|
||||
|
||||
@ -31,14 +31,15 @@ $altoScroll=83/2 * $mostrarTabla;
|
||||
include_once("Objects/HTML.php");
|
||||
|
||||
$html=new HTML($locale);
|
||||
|
||||
// Constantes para la p<>gina
|
||||
if($_GET["pagAcept"]=="") $pagAcept="1"; else $pagAcept=$_GET['pagAcept'];
|
||||
if($_GET["pagProp"]=="") $pagProp="1"; else $pagProp=$_GET['pagProp'];
|
||||
if($_GET["pagRech"]=="") $pagRech="1"; else $pagRech=$_GET['pagRech'];
|
||||
$pagAcept = isset($_GET["pagAcept"]) && ($_GET["pagAcept"]!="") ? $_GET["pagAcept"] : "1";
|
||||
$pagProp = isset($_GET["pagProp"]) && ($_GET["pagProp"]!="") ? $_GET["pagProp"] : "1";
|
||||
$pagRech = isset($_GET["pagRech"]) && ($_GET["pagRech"]!="") ? $_GET["pagRech"] : "1";
|
||||
|
||||
// Comprogamos si hay error de semaforo activo
|
||||
if($_GET['msgSem']!=""){
|
||||
$mensajeSemaforo=$semaforo->getMensaje($_GET['msgSem']);
|
||||
if (isset($_GET["msgSem"]) && ($_GET["msgSem"]!="")) {
|
||||
$mensajeSemaforo=$semaforo->getMensaje($_GET["msgSem"]);
|
||||
echo "<div class=\"aviso semaforo\">".$mensajeSemaforo."</div>";
|
||||
}
|
||||
|
||||
@ -54,25 +55,28 @@ if($pedido->getValor("estado")==40){
|
||||
echo $html->menuPedidos($usuario,"");
|
||||
|
||||
// Comprobamos mensajes que pueden llegar hasta aqui
|
||||
switch ($_GET['msg']) {
|
||||
case "1":$mensaje="<div class=\"aviso ok\">".$locale['1061']."</div>";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
if (isset($_GET["msg"])) {
|
||||
switch ($_GET['msg']) {
|
||||
case "1": $mensaje="<div class=\"aviso ok\">".$locale['1061']."</div>";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$mensaje = "";
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<link href="css/tablas.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<h2><?php echo $pedido->getValor("nombre"); ?></h2>
|
||||
<?php echo $mensaje;
|
||||
// Comprobamos si tenemos que aceptar o rechazar un candidato
|
||||
$action="";
|
||||
if($_GET['action']!="") $action= $_GET['action'];
|
||||
if($_POST['action']!="") $action= $_POST['action'];
|
||||
|
||||
if($action!=""){
|
||||
$action = (isset($_GET['action']) && ($_GET['action']!="")) ? $_GET['action'] : "";
|
||||
$action = (isset($_POST['action']) && ($_POST['action']!="")) ? $_POST['action'] : "";
|
||||
|
||||
if($action != "") {
|
||||
$error=false;
|
||||
$mensaje="";
|
||||
switch ($action) {
|
||||
@ -178,7 +182,23 @@ if($mensaje!=""){
|
||||
<td class="nombre"><?php echo $locale['1011']; ?></td>
|
||||
<td><?php echo discretiza_prioridad($pedido->getValor("prioridad")); ?></td>
|
||||
<td class="nombre"><?php echo $locale['1012']; ?></td>
|
||||
<td><?php echo nombre_perfil($pedido->getValor("perfil"));?></td>
|
||||
|
||||
<td>
|
||||
<?php
|
||||
$perfiles=$pedido->getPerfiles();
|
||||
if(count($perfiles)>0){
|
||||
foreach($perfiles as $nombre => $codigo){
|
||||
echo $nombre."<br />";
|
||||
}
|
||||
} else {
|
||||
?>
|
||||
<span class="errorcampo"><?php echo $locale['1097']; ?></span>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
|
||||
|
||||
<td class="nombre"><?php echo $locale['1013']; ?></td>
|
||||
<td><?php echo $pedido->getValor("nombre_cliente");?></td>
|
||||
</tr>
|
||||
@ -377,7 +397,7 @@ if($mensaje!=""){
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="cronopaginacion"><?php echo $html->paginacion($numPaginas,$pagAcept,"pedido.php","idPedido=".$pedido->getValor("oid"),"pagAcept"); ?></div>
|
||||
<div id="cronopaginacion"><?php echo $html->paginacion($numPaginas, $pagAcept,"pedido.php","idPedido=".$pedido->getValor("oid"),"pagAcept"); ?></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -708,4 +728,4 @@ if($mensaje!=""){
|
||||
</table>
|
||||
|
||||
|
||||
<?php include_once("html/pie.php"); ?>
|
||||
<?php include_once("html/pie.php"); ?>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user