From feb9b6f4b1c8e897175c9c036e32651e886ace13 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 6 Apr 2011 12:07:57 +0000 Subject: [PATCH] =?UTF-8?q?Ticket=20#563=20->=20En=20la=20pantalla=20de=20?= =?UTF-8?q?b=C3=BAsqueda=20de=20pedidos=20(solicitudes),=20se=20debe=20pod?= =?UTF-8?q?er=20elegir=20varios=20perfiles=20t=C3=A9cnicos=20Ticket=20#565?= =?UTF-8?q?=20->=20En=20una=20solicitud=20de=20oferta,=20se=20deben=20pode?= =?UTF-8?q?r=20indicar=20varios=20perfiles=20t=C3=A9cnicos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_Intranet/trunk@21 e2b1556b-49f8-d141-9351-52d6861a72d9 --- src/Objects/Afinidad.php | 20 ++-- src/Objects/ListaPedido.php | 2 +- src/Objects/Pedido.php | 100 ++++++++++++++++-- src/addPedido.php | 204 ++++++++++++++++++++---------------- src/buscar_pedido.php | 2 +- src/database/selfor.sql | 20 +++- src/detalle_candidato.php | 11 +- src/gestion_pedido.php | 43 ++++++-- src/lista_pedidos.php | 14 +-- src/pedido.php | 2 +- src/ver_lista_pedidos.php | 35 +++++-- src/ver_pedido.php | 56 ++++++---- 12 files changed, 353 insertions(+), 156 deletions(-) diff --git a/src/Objects/Afinidad.php b/src/Objects/Afinidad.php index 38f66b4..d0047b6 100644 --- a/src/Objects/Afinidad.php +++ b/src/Objects/Afinidad.php @@ -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; } } diff --git a/src/Objects/ListaPedido.php b/src/Objects/ListaPedido.php index a8287b2..b969b92 100644 --- a/src/Objects/ListaPedido.php +++ b/src/Objects/ListaPedido.php @@ -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 diff --git a/src/Objects/Pedido.php b/src/Objects/Pedido.php index 66a9cf9..6194843 100644 --- a/src/Objects/Pedido.php +++ b/src/Objects/Pedido.php @@ -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())"; diff --git a/src/addPedido.php b/src/addPedido.php index f52e505..3081aee 100644 --- a/src/addPedido.php +++ b/src/addPedido.php @@ -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 "

".$locale['1058']."

"; -if($msg!=""){ + +if (isset($msg) && ($msg != "")) { echo "
".$msg."
"; } echo '
'; @@ -148,8 +171,9 @@ echo ">".$locale['1504']; rellena_desplegable_select_oid("clientes","clientes",$auxiliar,$clientes); echo "".$locale['121']; - rellena_desplegable_select_oid("perfil","perfil",$auxiliar,$perfil); +echo ">".$locale['121']."
"; +// 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 "".$locale['132'].": ".$locale['2100']; echo ""; diff --git a/src/buscar_pedido.php b/src/buscar_pedido.php index 0c17616..bd1f6f8 100644 --- a/src/buscar_pedido.php +++ b/src/buscar_pedido.php @@ -83,4 +83,4 @@ echo $html->menuPedidos($usuario,""); \ No newline at end of file +?> diff --git a/src/database/selfor.sql b/src/database/selfor.sql index 66ded7a..b23c79b 100644 --- a/src/database/selfor.sql +++ b/src/database/selfor.sql @@ -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` -- diff --git a/src/detalle_candidato.php b/src/detalle_candidato.php index a83e0b9..22278e2 100644 --- a/src/detalle_candidato.php +++ b/src/detalle_candidato.php @@ -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="
".$locale['1085']."
"; diff --git a/src/gestion_pedido.php b/src/gestion_pedido.php index db4ce63..04f25ff 100644 --- a/src/gestion_pedido.php +++ b/src/gestion_pedido.php @@ -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 "" . " ".$locale['1504']; $auxiliar = ''; rellena_desplegable_select_oid("clientes","clientes",$auxiliar,$pedido->getValor("cliente")); -echo "".$locale['121']; - rellena_desplegable_select_oid("perfil","perfil",$auxiliar,$pedido->getValor("perfil")); +echo "".$locale['121']."
"; + +$perfiles=$pedido->getPerfiles(); +$keyperfiles=array_values($perfiles); +// Mostramos la lista para borrar +if(count($perfiles)>0){ + foreach ($perfiles as $nombre =>$valor) { + echo $nombre." getValor("oid")."&action=dellPer&id=".$valor."\">Borrar
"; + } +} else { + ?> + getValor("pesoPerfil") > 0) echo $locale['1097'];?>
+ listaSelect("perfil","oid","id","perfil",array("",$locale['ns']),$keyperfiles,false,true,"15"); + + + + + //rellena_desplegable_select_oid("perfil","perfil",$auxiliar,$pedido->getValor("perfil")); + + echo "".$locale['132'].$pedido->getValor("nombre_estado"); echo ""; diff --git a/src/lista_pedidos.php b/src/lista_pedidos.php index 5f1ea6f..285efc1 100644 --- a/src/lista_pedidos.php +++ b/src/lista_pedidos.php @@ -23,15 +23,15 @@ echo "

".$locale['1006']."

"; // 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); diff --git a/src/pedido.php b/src/pedido.php index fdf903a..344acdc 100644 --- a/src/pedido.php +++ b/src/pedido.php @@ -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"]); diff --git a/src/ver_lista_pedidos.php b/src/ver_lista_pedidos.php index ea4788c..488d250 100644 --- a/src/ver_lista_pedidos.php +++ b/src/ver_lista_pedidos.php @@ -13,16 +13,22 @@ if(stripos($destinoURL,"?")>0){ } // Comprobamos mensajes que pueden llegar hasta aqui -switch ($_GET['msg']) { - case "1":$mensaje="
".$locale['1059']."
"; - break; - case "2":$mensaje="
".$locale['1060']."
"; - break; - default: - break; +if (isset($_GET['msg'])) { + switch ($_GET['msg']) { + case "1":$mensaje="
".$locale['1059']."
"; + break; + case "2":$mensaje="
".$locale['1060']."
"; + break; + default: + break; + } } -echo $mensaje; +if (isset($mensaje)) echo $mensaje; + +if (!isset($variablesExtra)) $variablesExtra = ""; + + ?>
    @@ -155,7 +161,16 @@ if(count($listadePedidos)==0){ echo ''.$pedidoAct->getValor("nombre").''; echo ''.$pedidoAct->getValor("nombre_estado").''; echo ''.nombre_cliente($pedidoAct->getValor("cliente")).''; - echo ''.nombre_perfil($pedidoAct->getValor("perfil")).''; + + echo ''; + $perfiles=$pedidoAct->getPerfiles(); + $keyperfiles=array_values($perfiles); + // Mostramos la lista para borrar + foreach ($perfiles as $nombre =>$valor) { + echo $nombre.", "; + } + echo ''; + echo ''.$pedidoAct->getValor("empleados").''; echo ''.$pedidoAct->dameNumCand("Aceptado").''; echo ""; @@ -163,7 +178,7 @@ if(count($listadePedidos)==0){ // Comprobamos si tenemos que mostar una paginación $numPaginas=ceil(count($listadePedidos)/constante("lista")); echo "
    "; - if($_GET["order"]!=""){ + if (isset($_GET["order"]) && ($_GET["order"] != "")) { if($variablesExtra!=""){ $variablesExtra="&".$variablesExtra; } diff --git a/src/ver_pedido.php b/src/ver_pedido.php index 2656afe..cf681b0 100644 --- a/src/ver_pedido.php +++ b/src/ver_pedido.php @@ -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 "
    ".$mensajeSemaforo."
    "; } @@ -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="
    ".$locale['1061']."
    "; - break; - default: - break; +if (isset($_GET["msg"])) { + switch ($_GET['msg']) { + case "1": $mensaje="
    ".$locale['1061']."
    "; + break; + default: + break; + } +} else { + $mensaje = ""; } - ?>

    getValor("nombre"); ?>

    getValor("prioridad")); ?> - getValor("perfil"));?> + + + getPerfiles(); + if(count($perfiles)>0){ + foreach($perfiles as $nombre => $codigo){ + echo $nombre."
    "; + } + } else { + ?> + + + + + getValor("nombre_cliente");?> @@ -377,7 +397,7 @@ if($mensaje!=""){ ?> -
    paginacion($numPaginas,$pagAcept,"pedido.php","idPedido=".$pedido->getValor("oid"),"pagAcept"); ?>
    +
    paginacion($numPaginas, $pagAcept,"pedido.php","idPedido=".$pedido->getValor("oid"),"pagAcept"); ?>
    @@ -708,4 +728,4 @@ if($mensaje!=""){ - \ No newline at end of file +