Hola amig@s programadores y fiel lector de la página (aha si) jaja, en está ocasión elabore la semana pasada un proyecto para unas amigas que andan haciendo quien sabe que cosas en el IET, y me pidieron un programa en el cual se pudiera dar de alta un empleado, se pudiese registrar su hora de entrada y salida, claro la hora de entrada con 30 minutos de tolerancia y si no el empleado llega tarde marcarle un retardo y llegando a los 3 retardos no puede registrarse el usuario hasta que no pase a recursos humanos, la verdad no tenia ni la más mínima idea de como realizar este proyecto, pero con un poco de alcohol, una lampara que me distraiga y buena música todo es posible (y un poco de coca claro); no creo que la solución que ofrezco sea la mejor pero quizá y a alguien le ayude en algún proyecto escolar o darse alguna idea en algún programa similar para tener una idea de como resolver cierto problema, y sirve también que yo mejoro con sus comentarios 🙂
PD: Sólo comentare las partes del código que me parecen un poco complicado de entender o que sólo yo me entiendo jaja, lo demás lo investigan o hacen pruebas vale?
Iniciamos en la página principal
<script type="text/javascript"> var pagina="admin.php" var paginaAux="empleado.php" function show_prompt() { var name=prompt("Introduce tu nombre","Instituto Electoral de Tlaxcala"); if (name!=null && name!="" && name=="h4hxg5hxg5Ce8Dh7++") { location.href=pagina } else location.href=paginaAux } </script> <body onLoad="show_prompt()">
en este código estamos indicando que si aciertan a la contraseña “h4hxg5hxg5Ce8Dh7++” irán a la sección de administrador en caso contrario a la sección para los empleados y esto se abre en un cuadro de dialogo desde javascript el cual lo mandamos a llamar dentro del
con la instrucciónonLoad="show_prompt()"
;
Ahora en la página de Empleado mostramos un reloj hecho en JavaScript pero lo interesante acá es:
<form name="size"> <input type="text" size="11" name="Clock" readonly="readonly" style="border: 3px solid #D0A9F5; padding: 2px 5px 2px 5px;"> </form>
la instrucción readonly=”readonly” la cual deshabilita el cuadro de entrada del formulario (input) y si todo va bien seleccionemos la opción que seleccionemos nos enviara al archivo checar; en el cual si presionamos el boton1 nos envía al proceso para registrar la entrada y salida;
date_default_timezone_set('America/Mexico_City'); /*con esta instrucción establecemos la zona horaria de la Ciudad de México si no activamos esto tendremos la hora de nuestro servidor y muchas ocasiones varia muchísimo de nuestra zona horaria.*/ echo date('H:i:s');
if($reg['Retardos']<3){/*si los retardos son menores a 3*/ $ban=false; if($reg['Temporal']==0){ /*indica entrada */ $ban=true; }else if($reg['Temporal']==1){ /*indica salida */ $ban=false; } if($entrada<=$reg['Entrada'] && $ban==true){ /*si la hora de entrada aún esta permitida (osea 30 minutos de tolerancia) y si es la entrada "ban"*/ mysql_query("update empleado set Temporal='1' where Id=$reg[Id] " ,$conexion) or die("Problemas en el select: ".mysql_error()); /*actualizamos la tabla empleado en el campo Temporal (este nos indica si es entrada o salida) donde el id sea igual al id obtenido*/ } else if($entrada>=$reg['Entrada'] && $ban==true){ /*si es la entrada "ban", pero la hora de entrada excede el limite permitido*/ $addRet=$reg['Retardos']+1; /*sumamos un retardo*/ mysql_query("update empleado set Retardos=$addRet, Temporal='1' where Id=$reg[Id] " ,$conexion) or die("Problemas en el select: ".mysql_error()); /*actualizamos la tabla empleado en los campos Retardos y Temporal*/ } else if($ban==false){ /*ultimo caso es la salida*/ mysql_query("update empleado set Temporal='0' where Id=$reg[Id] " ,$conexion) or die("Problemas en el select: ".mysql_error()); }
y si los retardos ya son mayores a 3 no permite el registro de la entrada y marca un mensaje que hay que pasar a Recursos Humanos.
y si oprimen la opción de consultar sólo mostramos su nombre y apellidos con el número de retardos.
Y en la sección de administrador tenemos dos opciones, la primera la cual es para regresar los retardos a 0, lo curioso acá es que el formulario y el proceso están dentro del mismo programa y para hacer que esto funcione sólo hay que incluir lo siguiente:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"enctype="multipart/form-data" name="form1" >
lo que va dentro del action es lo importante no pidan explicación porque no tengo la mínima idea, pero funciona y nos sirve cuando no queremos realizar tantas páginas y andar enviando de una a otra y mostramos los resultados dentro de la misma página de la consulta.
Y la parte complicada o que más me agrado a mi (malditas drogas) es la de registrar al usuario y bueno comprendan mi emoción es de las primeras ocasiones que realizo esto jaja.
La fecha de nacimiento;
<p>Fecha de Nacimiento: Año: <select name="ano" style="border: 3px solid #D0A9F5; padding: 2px 5px 2px 5px;">
<?php for($a=2010;$a>1899;$a--){ /*colocamos en el option del select los años */ echo '<option value="'.$a.'" >'.$a.'</option>'; } ?>
</select>
y con este pequeño código nos olvidamos de poner uno por uno de los años que sería un relajo total y muy cansado, con esto optimizamos el código del formulario (bendito php) y ahora cuando lo registramos al empleado en el archivo Registrado es donde:
$hora=$_POST["hEntrada"]; $min=$_POST["mEntrada"]; $auxMin=$min+30;/*agregamos 30 minutos de tolerancia*/ if($auxMin>=60 && $hora<=23){ /*si los minutos suman mas de 60 no puede ser asi que incrementamos una hora y restamos al numero total de minutos 60 y obtenemos los minutos pero en una nueva hora*/ $hora=$hora+1; $min=$auxMin-60; } else if($auxMin>=60 && $hora>=24){ $hora=00; $min=$auxMin-60; } else{ $hora=$hora; $min=$auxMin; }
y ahora generaremos un código único de empleado (que no sea el id ya que sería demasiado fácil saberlo).
$codi=""; $codi=$codi.$numero; /*id*/ $codi=$codi.strtoupper($ap{0});/*primera letra del apellido paterno*/ $codi=$codi.strtoupper($am{0});/*primera letra delapellido materno*/ $codi=$codi.strtoupper($nombre{0});/*primera letra del nombre*/ $codi=$codi.$aa{2};/*3er digito del año*/ $codi=$codi.$aa{3};/*4to digito del año de nacimiento*/ $codi=$codi.$mm{0};/*primer digito del mes*/ $codi=$codi.$mm{1};/*segundo digito del mes*/ $codi=$codi.$dd{0};/*primer digito del día*/ $codi=$codi.$dd{1};/*segundo digito del día*/
Y con esto ya tenemos nuestros Sistema de Registro de Empleado, registrar su hora de entrada y salida y tomarle en cuenta retardos
(si que no sea flojo y que se levante pronto).
iet1 (1)
Espero les sea de gran ayuda este proyecto y les sirva de algo si quiera de mal ejemplo o cosas que no hay que hacer borracho jaja y que posiblemente algún código les sea de utilidad.
PD02: por cierto la base de datos se llama iet, y la tabla empleado
Si disfrutaste nuestro artículo, siéntete libre de suscribirte a nuestro feed rss
mayo 28th, 2014 a las 10:23 AM
Hola esta rebueno tu programa pero podrias pasarlo a java??.
Gracias
julio 4th, 2014 a las 10:47 PM
Hola CRISS si sabes programar solo es hacer la migración y con todo gusto te lo puedo hacer en Java pero eso ya sería hablar de un co$to.
julio 2nd, 2014 a las 10:58 AM
hey podrias subir el programa ya hecho solo para hacerle cambios no soy muy bueno en esto estas haciendo esto en cmd??
julio 4th, 2014 a las 10:49 PM
Hola el programa y todo lo que necesitas esta en el post es el link que dice “iet(1)”, suerte y no, lo hago en bloc de notas.
julio 25th, 2014 a las 6:21 PM
Mcuhas Gracias Hermano… No tendras algo de inscripcion de alumnos o algo que me gie a eso?
diciembre 11th, 2014 a las 9:37 AM
esta super pero un favorcito podria hacerlo paso a paso el sytema como un proyecto algo asi xf