Incam_Intranet/gestion_pedido.php

249 lines
9.5 KiB
PHP

<?php
include("seguridad.php");
include("functions.php");
$idPedido=$_GET['idPedido'];
include_once("html/cabecera.php");
include_once("Objects/HTML.php");
include_once("Objects/Pedido.php");
$pedido=new Pedido($idPedido,$usuario);
$html=new HTML($locale);
// Comprobamos los permisos
// Sólo el gerente de ese pedido puede editarlo
if(($pedido->getValor("gerente")!=$usuario->getValor("oid"))
&& !$usuario->tieneRol("1")){
header("Location: aplicacion.php?e=permiso");
exit;
}
// Comprobamos si estamos haciendo algo
$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="";
switch ($action) {
case "edit":
try{
$pesoTec=$_POST['pesoTec'];
$pesoIdi=$_POST['pesoIdi'];
$pesoPer=$_POST['pesoPer'];
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";
}
/* Comprobamos que el número de personas necesarios no sea inferior el número de personas
* que están actualmente aceptadas
*/
$listaAceptadas=$pedido->getCandidatosAceptados();
if($_POST['empleados']< count($listaAceptadas)){
$errores[]="9";
$mensaje=$locale['1096'];
}
if(count($errores)==0){
$pedido->setCampo("nombre",$_POST['nombre']);
$pedido->setCampo("prioridad",$_POST['prioridad']);
$pedido->setCampo("empleados",$_POST['empleados']);
$pedido->setCampo("duracion",$_POST['duracion']);
$pedido->setCampo("gerente",$_POST['gerente']);
$pedido->setCampo("cliente",$_POST['clientes']);
$pedido->setCampo("salario_min",$_POST['salario_min']);
$pedido->setCampo("salario_max",$_POST['salario_max']);
$pedido->setCampo("procedencia",$_POST['procedencia']);
$pedido->setCampo("pesoIdioma",$pesoIdi);
$pedido->setCampo("pesoPerfil",$pesoPer);
$pedido->setCampo("pesoTecno",$pesoTec);
$pedido->addPerfiles($_POST['perfil']);
$pedido->addTecnologias($_POST['tecnologia']);
$pedido->addIdiomas($_POST['idiomas']);
$pedido->addProvincias($_POST['provincias']);
$pedido->setCampo("observaciones",$_POST['observaciones']);
$mensaje=$locale['1063'];
}
} catch (Exception $e){
$mensaje=$locale[$e->getMessage()];
}
break;
case "dellTec": $idAction=$_GET['id'];
$pedido->removeTecnologia($idAction);
$mensaje=$locale['1064'];
break;
case "dellIdi": $idAction=$_GET['id'];
$pedido->removeIdioma($idAction);
$mensaje=$locale['1065'];
break;
case "dellLoc": $idAction=$_GET['id'];
$pedido->removeProvincia($idAction);
$mensaje=$locale['1089'];
break;
case "dellPer": $idAction=$_GET['id'];
$pedido->removePerfil($idAction);
$mensaje=$locale['1090'];
break;
default:
break;
}
echo $html->menuPedidos($usuario,"");
echo "<h2>".$pedido->getValor("nombre")."</h2>";
if($mensaje!=""){
// Mostramos el mensaje
if(in_array("9",$errores)){
echo "<div class=\"aviso error\">".$mensaje."</div>";
}else{
echo "<div class=\"aviso ok\">".$mensaje."</div>";
}
}
echo '<form method="POST" action="gestion_pedido.php?idPedido='.$pedido->getValor("oid").'" name="form_registro" enctype="multipart/form-data">';
echo "<input type=\"hidden\" name=\"action\" value=\"edit\" />";
echo '<input type="submit" value="'.$locale['gu'].'" onclick="return comprobar_registro(this)" class="button">';
echo "<table id=\"editPedido\">" .
"<tr>" .
" <td>".$locale['1043']."<input type=\"text\" name=\"nombre\" value=\"".$pedido->getValor("nombre")."\" size=\"30\" maxlength=\"255\" ></td>" .
" <td>" .$locale['1022'].":";
rellena_prioridad_select("prioridad",$pedido->getValor("prioridad"));
echo " - ".$locale['1024'].": <input type=\"text\" name=\"empleados\" value=\"".$pedido->getValor("empleados")."\" maxlenght=\"3\" size=\"2\" />" .
"<br />".$locale['1026'].": <input type=\"text\" name=\"duracion\" value=\"".$pedido->getValor("duracion")."\" maxlenght=\"3\" size=\"2\" />" .
"</td>";
echo "<td>".$locale['1027'];
$auxiliar = '<option value="">'.$locale['ns'].'</option>';
rellena_personal_permiso("gerente","GP",$auxiliar,$pedido->getValor("gerente"));
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']."<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>";
echo "<tr><td colspan=\"2\">";
echo $locale['129'];
rellena_desplegable_select_oidCol("salario","id","nombre","salario_min",$auxiliar,$pedido->getValor("salario_min"));
echo ' - '.$locale['130'].'';
rellena_desplegable_select_oidCol("salario","id","nombre","salario_max",$auxiliar,$pedido->getValor("salario_max"));
echo "</td><td>".$locale['1800'];
rellena_procedencias("procedencia",$auxiliar,$pedido->getValor("procedencia"));
echo "</td></tr>";
echo "<tr><td colspan=\"3\">" .
"<table><tr><td>".$locale['122']."</td><td>";
$tecnologias=$pedido->getTecnologias();
$keytecnologias=array_values($tecnologias);
// Mostramos la lista para borrar
if(count($tecnologias)>0){
foreach ($tecnologias as $nombre =>$valor) {
echo $nombre." <a href=\"gestion_pedido.php?idPedido=".$pedido->getValor("oid")."&action=dellTec&id=".$valor."\">Borrar</a><br />";
}
} else {
?>
<span class="errorcampo"><?php if($pedido->getValor("pesoTecno") > 0) echo $locale['1097'];?></span><br />
<?php
}
echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$keytecnologias,false,true,"15");
echo "</td><td>".$locale['123']."</td><td>";
$idiomas=$pedido->getIdiomas();
$keyidiomas=array_values($idiomas);
// Mostramos la lista para borrar
if(count($idiomas)>0){
foreach ($idiomas as $nombre =>$valor) {
echo $nombre." <a href=\"gestion_pedido.php?idPedido=".$pedido->getValor("oid")."&action=dellIdi&id=".$valor."\">Borrar</a><br />";
}
} else {?>
<span class="errorcampo"><?php if($pedido->getValor("pesoIdioma") > 0) echo $locale['1097'];?></span><br />
<?php
}
echo $html->listaSelect("idiomas","oid","id","idiomas",array("",$locale['ns']),$keyidiomas,false,true,"15");
echo "</td><td>".$locale['209']."</td><td>";
$localidades=$pedido->getProvincias();
$keylocalidades=array_values($localidades);
// Mostramos la lista para borrar
if(count($localidades)>0){
foreach ($localidades as $nombre =>$valor) {
echo $nombre." <a href=\"gestion_pedido.php?idPedido=".$pedido->getValor("oid")."&action=dellLoc&id=".$valor."\">Borrar</a><br />";
}
} else {
?>
<span class="errorcampo"><?php echo $locale['1097']; ?></span><br />
<?php
}
echo $html->listaSelect("provincias","oid","id","provincias",array("",$locale['ns']),$keylocalidades,false,true,"15");
echo "</td>";
?>
<!--td <?php if(in_array("8",$errores)) {echo " class=\"errorcampo\"";} ?> width="200px">
<?php echo $locale['1078']; ?>: <input name="pesoTec" type="text" size="5" align="right" value="<?php echo $pedido->getValor("pesoTecno"); ?>" <?php if((!is_numeric($pesoTec))&& ($pesoTec!="")) {echo " class=\"errorcampo\"";}?> <?php echo "/> %<br />"; ?>
<?php echo $locale['1079']; ?>: <input name="pesoIdi" type="text" size="5" value="<?php echo $pedido->getValor("pesoIdioma"); ?>" <?php if((!is_numeric($pesoIdi)) && ($pesoIdi!="")) {echo " class=\"errorcampo\"";} ?> <?php echo "/> %<br />"; ?>
<?php echo $locale['1080']; ?>: <input name="pesoPer" type="text" size="5" value="<?php echo $pedido->getValor("pesoPerfil"); ?>" <?php if((!is_numeric($pesoPer))&& ($pesoPer!="")) {echo " class=\"errorcampo\"";} ?> <?php echo "/> %<br />"; ?>
<?php echo $locale['1081']; ?>
</td-->
<?php
echo "</tr></table></td></tr>";
echo '<tr><td colspan="3" align="center">'.$locale['135'].'<br><textarea name="observaciones" rows="30" cols="120" style="overflow: auto; width:100%; ">'.
$pedido->getValor("observaciones").
'</textarea></td></tr>';
echo '<tr><td colspan="3" align="center">'.$locale['127'].'<br><textarea name="historial" readonly rows="8" cols="120" maxlength="300" style="overflow: auto;">';
echo $pedido->getHistorial();
echo '</textarea></td></tr>';
/* Botones de guardar y restablecer */
echo "<tr><td colspan=\"3\" align=\"center\">";
echo '<input type="submit" value="'.$locale['gu'].'" onclick="return comprobar_registro(this)" class="button">';
echo '<input type="reset" value="'.$locale['res'].'" class="button"></td>';
echo "</tr></table>";
echo "</form>";
include_once("html/pie.php");
?>