Incam_Intranet/addPedido.php

230 lines
8.1 KiB
PHP
Raw Permalink Normal View History

<?php
include("seguridad.php");
include("functions.php");
include_once("Objects/Pedido.php");
include_once("Objects/HTML.php");
$html=new HTML($locale);
// Comprobamos los permisos
// S<>lo los gerentes y administradores puede a<>adir pedidos
if(!$usuario->tieneRol("3")&&!$usuario->tieneRol("1")){
header("Location: aplicacion.php?e=permiso");
exit;
}
$errores = array();
// Todas las variables
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'];
} 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 {
$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 ((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 (isset($msg) && ($msg != "")) {
echo "<div class=\"aviso ".$tipo."\">".$msg."</div>";
}
echo '<form method="POST" action="addPedido.php" name="form_registro" enctype="multipart/form-data">';
echo "<input type=\"hidden\" name=\"action\" value=\"add\" />";
echo "<table id=\"addPedido\">" .
"<tr>" .
" <td";
if(in_array("1",$errores)) echo " class=\"errorcampo\"";
echo ">".$locale['1043']."<input type=\"text\" name=\"nombre\" value=\"".$nombre."\" size=\"30\" maxlength=\"30\" ></td>" .
" <td";
if(in_array("2",$errores)) echo " class=\"errorcampo\"";
echo ">" .$locale['1022'].":";
rellena_prioridad_select("prioridad",$prioridad);
echo " - ".$locale['1024'].": <input type=\"text\" name=\"empleados\" value=\"".$empleados."\" maxlenght=\"3\" size=\"2\"" .
"<br />".$locale['1026'].": <input type=\"text\" name=\"duracion\" value=\"".$duracion."\" maxlenght=\"3\" size=\"2\" />" .
"</td>";
echo "<td";
if(in_array("3",$errores)) echo " class=\"errorcampo\"";
echo ">".$locale['1027'];
// Si es Admin puede asignar un gerente, si no, s<>lo a <20>l
if($usuario->tieneRol("1")){
$auxiliar = "";
rellena_personal_permiso("gerente","GP",$auxiliar,$usuario->getValor("oid"));
} else {
echo "<input type=\"text\" readonly value=\"".$usuario->getValor("nombre")." ".$usuario->getValor("apellidos")."\" />";
}
echo "</td></tr>" .
" <tr><td";
if(in_array("4",$errores)) echo " class=\"errorcampo\"";
echo ">".$locale['1504'];
$auxiliar = '<option selected value="">'.$locale['ns'].'</option>';
rellena_desplegable_select_oid("clientes","clientes",$auxiliar,$clientes);
echo "</td><td";
if(in_array("5",$errores)) echo " class=\"errorcampo\"";
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>";
echo "<tr><td colspan=\"2\"";
if(in_array("6",$errores)) echo " class=\"errorcampo\"";
echo ">";
echo $locale['129'];
rellena_desplegable_select_oidCol("salario","id","nombre","salario_min",$auxiliar,$salario_min);
echo ' - '.$locale['130'].'';
rellena_desplegable_select_oidCol("salario","id","nombre","salario_max",$auxiliar,$salario_max);
echo "</td><td";
if(in_array("7",$errores)) echo " class=\"errorcampo\"";
echo ">".$locale['1800'];
rellena_procedencias("procedencia",$auxiliar,$procedencia);
echo "</td></tr>";
echo "<tr><td colspan=\"3\">" .
"<table><tr><td>".$locale['122']."</td><td>";
echo $html->listaSelect("tecnologia","oid","id","tecnologia",array("",$locale['ns']),$tecnologias,true,true,"15");
echo "</td><td>".$locale['123']."</td><td>";
echo $html->listaSelect("idiomas","oid","id","idiomas",array("",$locale['ns']),$idiomas,true,true,"15");
echo "</td><td>".$locale['209']."</td><td>";
echo $html->listaSelect("provincias","oid","id","provincias",array("",$locale['ns']),$provincias,true,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 $pesoTec; ?>" <?php if((!is_numeric($pesoTec))&& ($pesoTec!="")) echo " class=\"errorcampo\""; ?>> %<br />
<?php echo $locale['1079']; ?>: <input name="pesoIdi" type="text" size="5" value="<?php echo $pesoIdi; ?>" <?php if((!is_numeric($pesoIdi)) && ($pesoIdi!="")) echo " class=\"errorcampo\""; ?>> %<br />
<?php echo $locale['1080']; ?>: <input name="pesoPer" type="text" size="5" value="<?php echo $pesoPer; ?>" <?php if((!is_numeric($pesoPer))&& ($pesoPer!="")) echo " class=\"errorcampo\""; ?>> %<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="4" cols="40" maxlength="300" style="overflow: auto;">'.$observaciones.'</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");
?>