04/02/2011, 10:35
|
| | Fecha de Ingreso: abril-2010
Mensajes: 6
Antigüedad: 14 años, 7 meses Puntos: 0 | |
Respuesta: Registro de entrada para empleados Cita:
Iniciado por cesarhl Tu error es que solo estas Verificando el POST de entrada y como vas hacer con los demas.
Te lo digo por que yo cree un sistema parecido:
Que registra la Hora de ingreso, Hora de Comienzo de Refrigerio, Hora final de refrigerio, hora de salida.
lo puse todo en un Div que lo diseñe como tabla y cada campo de la hora tenia un pequeño boton que al presionarlo se registraba la hora del servidor.
Por experiencia te digo que no fue facil. me tomo 2 dias enteros realizarlo.
el truco esta en que crees una tabla donde registres todas esas hora la tabla que yo cree fue asi:
TABLA usuario (la comun).
Tabla RegistroDeTurno:
idturno
id_usuario
hora_entra
hora_comienzo_refrigerio
hora_final_refrigerio
hora_salida
Luego tienes que crear el div diseñado como una tabla (si quieres crea una tabla en lugar de utilizar div), luego en cada campo de las hora pon un boton; mejor te muestro uan imagen ^^.
[IMG][URL=http://www.imaxenes.com/imagen/hora1aq73rh.png.html][IMG]http://www.imaxenes.com/mini/hora1aq73rh.png[/IMG][/URL][/IMG]
-Primero tienes que elaborar una función que te traiga todos los usuarios activos y los guardas en un arreglo.
-luego ese arreglo lo recores en un foreach(dentro del foreach estara la tabla solo el campo de horas, esto se hace para que sea dinamico).
-en cada nombre del boton es distinta ejemplo:
Hora de netrada: boton(name="btnEntra<? echo arreglo['idturno']")
Hora de comienzo de refri: boton(name="btnComRef<? echo arreglo['idturno']")
Hora de final de refri: boton(name="btnFinRef<? echo arreglo['idturno']")
Hora de salida: boton(name="btnsal<? echo arreglo['idturno']")
luego haces que el formulario que contiene toda esa tabla lo envie aun archivo digamos llamado registroturno.php.
-Ahora es la parte dificil
en registroturno.php tmb realizar el mismo foreach con la misma funcion que utlizamos para recorrerla.
-dentro de este nuevo foreach vas acrear varios if() q te verifiquen que boton presionaste:
digamos
foreach($arraydedatos as $items){
if($_POST['btnEntra<? echo $items['idturno'] ?>']){
}
if($_POST['btnComRef<? echo $items['idturno'] ?>']){
}
//haces por los 4 botones de registro de hora.
}
ahora en cada if() pon una funcion que registre la hora y lo guarde en la tabla donde se registraran las hora.
foreach($arraydedatos as $items){
if($_POST['btnEntra<? echo $items['idturno'] ?>']){
// funcion que registra la hora de entrada
}
if($_POST['btnComRef<? echo $items['idturno'] ?>']){
// funcion que registra la hora comienzo de refrigerio
}
//haces por los 4 botones de registro de hora.
}
despues haces que de nuevo se redireccione a tu formulario.
ahora te enseño el truco:
La cosa esta que que crees una nuevo boton que se llama Nuevo Trabajo:
el cual cuando se presione, ese boton va acrear un registro en la tabla RegistroDeTurno de esta manera:
idturno = 1
id_usuario = 1(este es el codigo del usuario del campo presionado)
hora_entra = NULL
hora_comienzo_refrigerio = NULL
hora_final_refrigerio = NULL
hora_salida = NULL
una ves creado este campo solo seria modificar el foreach de esta forma:
foreach($arraydedatos as $items){
if($_POST['btnEntra<? echo $items['idturno'] ?>']){
// funcion que "ACTUALIZA" la hora de entrada
}
if($_POST['btnComRef<? echo $items['idturno'] ?>']){
// funcion que "ACTUALIZA" la hora comienzo de refrigerio
}
//haces por los 4 botones de registro de hora.
}
despues haces que de nuevo se redireccione a tu formulario.
mejor te muestro algo de mi codigo:
if(isset($_POST['btnoperacion'.$items['id']])){
$controlUusario->id = $items['id'];
$maxId = $controlUusario->traerUltimoRegistro();
$usuarioActivo = $controlUusario->comprobarregisUsuario($maxId['ultimo']);
if($usuarioActivo['hora_entra'] == NULL || $usuarioActivo['hora_entra_ref'] == NULL || $usuarioActivo['hora_salida_ref'] == NULL || $usuarioActivo['hora_salida'] == NULL){
$getid = $items['id'];
}else{
$controlUusario->insertarNuevoRegistro();
}
}
if(isset($_POST['btnhentra'.$items['id']])){
$NumregistroUsu = $controlUusario->verficacionusuario();
if($NumregistroUsu == 0){
$controlUusario->insertarNuevoRegistro();
}
$maxId = $controlUusario->traerUltimoRegistro();
$controlUusario->actualizarHoraEntrada($maxId['ultimo']);
}
Lo mismo haces por cada boton.
Nota el Boton "btnoperacion" es el boton de nuevo trabajo
esa parte de codigo que te mostre es para validar si ya existe el registro del usuario entcs que se cree uno nuevo,
$NumregistroUsu = $controlUusario->verficacionusuario();
if($NumregistroUsu == 0){
$controlUusario->insertarNuevoRegistro();
}
este codigo solo lo hago en el primer boton ya que cuando no hay ningun registro en la tabla lo p`rimero que se presiona el el boton de hora de entrada.
^^ |