Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Algoritmo a usar en App entrada/salida empleados (https://www.clubdelphi.com/foros/showthread.php?t=88987)

El_Raso 08-09-2015 17:28:08

Algoritmo a usar en App entrada/salida empleados
 
Saludos a Todos y Todas

Tengo que iniciar una aplicación de entrada y salida de empleados en una empresa, para llevar el control de las ausencias y tardanzas.

Me exigen que sea con un lector de huellas (Aun no me he decidido por cual usar, una ayuda no estaría mal), mi problema esta en como
voy a diferencial cuando el empleado al ponchar en el lector esta entrando o saliendo, esto se debe a que hay varios horarios en la empresa
incluyendo algunos que pasan de un día al otro (Ej. 11pm a 7am).

Estoy seguro que muchos de ustedes ya han desarrollado aplicaciones como esta, solo le pido una orientación de como debo manejar esa parte.
Si alguno sabe de algún demo en la red se lo agradecería.

PD: en cuanto el lector, cual me conviene? el que guarda los registros de los empleados para una lectura posterior de la aplicación ó el que va conectado directamente al
PC para leerlo desde mi propia aplicación?

Bendiciones.

Delphius 08-09-2015 17:40:19

Respuesta fácil: Se identifica al personal en base al turno que pertenece.
Por ejemplo si el turno "nocturno" es de 23 a 7 y Pepito trabaja en dicho turno, cuando Pepito pase por el lector a las 23:05 sabrás que ha INGRESADO 5 minutos tarde, y para cuando lo pilles que se SALIÓ a las 6:48 ya sabes que le espera. :D

Ahora bien, si deseas complicarlo más y el personal va a estar saliendo y entrando, o pueden estar rotando de turno ya debes hacer un poquito más de esfuerzo. Lo fundamental: registrar cada movimiento.

movorack 08-09-2015 19:25:27

Hola,

Podría funcionar con 2 lectores (uno de entrada y otro de salida) y opcionalmente que estos desbloqueen la puerta para la entrada o salida de personal.

Algunos modelos de estos lector de pared se leen por LAN para procesarse en batch.

Diagrama de ejemplo:


newtron 08-09-2015 19:52:21

Hola.

Como bien te dice Delphius lo fundamental es registrar cada movimiento con su fecha y hora. En teoría si no hay registros de movimientos al pasar la primera vez debe de ser de entrada, la siguiente será el contrario de la anterior y así sucesivamente.

El problema es que.... ¿qué pasa si, por alguna tontada, pasa dos veces a la entrada o a la salida?. Esos temas son los que tendrás que ver cómo resuelves.

Saludos

El_Raso 08-09-2015 20:05:36

Gracias por sus respuesta a Todos...
newtron ese es uno de los dolores de cabeza... si lo pasan dos veces... como controlarlo..
movorack Eso seria idel... per la empresa no tiene la infraestructura para esa parte... yo hasta pensé que con una huella de la mano derecha ENTRAR y
con la mano Izquierda SALIR... pero encontré muy estúpida esa solución.

mamcx 08-09-2015 20:08:41

Asi que lo que quieres detectar es *movimiento*. El lector de huella es solo "autenticacion".

Entonces necesitas es detectar *movimiento*. Para eso deberias tener, por ejemplo, 2 sensores laser/camaras/etc que detecten cuando un objeto va de der-izq y viceversa.

Los dispositivos moviles tienen una solucion usando :https://en.wikipedia.org/wiki/IBeacon

Delphius 08-09-2015 20:10:34

Estás muy verde y demasiado lento. Te pones a ver un bosque donde no lo hay.
A ver, te tiro otro centro para que lo cabecees.

Pepito pasa 5 veces por el lector. ¿Está afuera o adentro? Respuesta: ADENTRO. Aún no ha salido del lugar.
Juancito pasa 8 veces por el lector. ¿Está afuero o adentro? Respuesta: AFUERA. Se retiró.
Pedrito que está de licencia, no ha venido. pasó 0 veces.

Saludos,

Delphius 08-09-2015 20:13:55

Cita:

Empezado por mamcx (Mensaje 496414)
Asi que lo que quieres detectar es *movimiento*. El lector de huella es solo "autenticacion".

Entonces necesitas es detectar *movimiento*. Para eso deberias tener, por ejemplo, 2 sensores laser/camaras/etc que detecten cuando un objeto va de der-izq y viceversa.

Los dispositivos moviles tienen una solucion usando :https://en.wikipedia.org/wiki/IBeacon

Lee de nuevo mamx.
Estás confundiendo algunos tantos. ;)

Saludos,

Delphius 08-09-2015 20:17:27

A ver, ya te he dado una pista para que sepas si está afuera o adentro del lugar, si entró o salió cuantas veces quiera... dentro o fuera del horario de trabajo. Lo que queda es que ahoras unas esto con el concepto de los turnos/rotaciones.

Necesariamente debes tener armado una especie de "calendario laboral". Y comprobar cada movimiento contra esto.

Saludos,

Jose Roman 08-09-2015 23:39:58

Sabes que haria yo, optaria que el usuario digitara la opcion de que tipo de registro hace:
- Entrada
- Salida
y asi lleno la base de datos

Delphius 09-09-2015 00:04:17

Cita:

Empezado por Jose Roman (Mensaje 496419)
Sabes que haria yo, optaria que el usuario digitara la opcion de que tipo de registro hace:
- Entrada
- Salida
y asi lleno la base de datos

No es necesario. De hacerlo por esta vía se deberá dejar un teclado (ya sea físico o por una pantalla touch) por el cual ingresar datos, y se deja una posibilidad a que el personal le busque algunas vueltas.

Insisto: sólo hace falta contar los movimientos de cada persona cada vez que pasa por el lector.
Va de nuevo: Francisco llega al trabajo de su turno correspondiente, como es costumbre 5 minutos antes. Son las 6:55 am y pasa. El lector marca la hora, lo identifica, y verifica si a esa hora para ese día en verdad le corresponde trabajar. Detecta que si debe presentarse. Su marcador incrementa UN ingreso.
El problema de Francisco es que es muy desorganizado y siempre se olvida de sus herramientas y constantemente sale y entra. Siendo las 7:10 am se da cuenta que se olvidó la pinza pico de loro en casa y vuelve para casa. Pasa por el lector, lo reconoce y cuenta otro movimiento. Ya van 2.
A las 8:00 am por fin llega con la pinza. Ingresa, y el lector de nuevo controla: pasó una TERCERA vez, y por tanto sabe que ha vuelto a entrar.
El sistema como tiene un calendario laboral, ha detectado que Francisco ha salido y vuelto al trabajo en su horario.
A la hora de salida, Francisco nuevamente sale ya a su casa. El lector detecta que la hora es 6 pm, y verifica que efectivamente es su hora de finalización del turno. Contabilizó para esa jornada 4 movimientos. Sabe por este 4 (un número PAR) que asi como entró, ha salido. Francisco cumplió con su trabajo.
En el interín, Julián, otro trabajador de la empresa se presenta a las 10:23 am. El sistema detecta su ingreso, y ve que no es su turno. Se marca su entrada como "sospechosa" para que luego, el jefecito en su rutina de control vea que alguien ha entrado y/o salido.... ve que Julián entro fuera de su turno, y que Francisco a pesar de haber cumplido con su horario, se había fugado.

La lección de esto: el problema no está en los ingresos y egresos, sino en saber estructurar y como tener un registro del calendario laboral y en como vincular esta información con el registro de cada persona en la empresa. Esto es ya una cuestión de diseño, y creatividad del diseñador.
No hay tal algoritmo mágico.

A lo máximo, aquí está:
Movimiento pares: ha salido.
Movimiento impares: ha entrado.

Saludos,

El_Raso 09-09-2015 07:08:30

Cita:

Empezado por Delphius (Mensaje 496420)
La lección de esto: el problema no está en los ingresos y egresos, sino en saber estructurar y como tener un registro del calendario laboral y en como vincular esta información con el registro de cada persona en la empresa. Esto es ya una cuestión de diseño, y creatividad del diseñador.
No hay tal algoritmo mágico.
Saludos,

Gracias por tu aporte Delphius... Ese análisis tuyo es que da ideas para un buen diseño. Lo que veo es que será obligatorio la intervención de usuario para tener un control absoluto del comportamiento de I/O del empleado

fjcg02 09-09-2015 08:51:42

Hola,
aunque no soy un experto, lo normal es acompañar a la lectura de la huella la acción del empleado:
1.- Entrada turno
2.- Salida turno
3.- Entrada visita al médico
4.- Salida visita al médico
5.- Entrada permiso X
6.- Salida permiso X
...

y así hasta lo que quiera controlar el departamento de RRHH.

Puedes salir y entrar por múltiples razones, incluso porque se te haya olvidado el bocadillo en el coche.

Un saludo

newtron 09-09-2015 09:45:30

Cita:

Empezado por Delphius (Mensaje 496415)
Estás muy verde y demasiado lento. Te pones a ver un bosque donde no lo hay.
A ver, te tiro otro centro para que lo cabecees.

Pepito pasa 5 veces por el lector. ¿Está afuera o adentro? Respuesta: ADENTRO. Aún no ha salido del lugar.
Juancito pasa 8 veces por el lector. ¿Está afuero o adentro? Respuesta: AFUERA. Se retiró.
Pedrito que está de licencia, no ha venido. pasó 0 veces.

Saludos,

Delphius. El problema es que si un operario que va a entrar por ejemplo pasa el dedín por el lector dos veces a lo tontaina y luego entra el sistema pensará que está fuera cuando realmente está dentro. Como bien dice mamcx ese control debería de ir apoyado en algún sistema que detecte el movimiento, ya sea con sensores de algún tipo o con algún dispositivo que se abra y deje paso detectando si ha pasado o no.

Saludos

Neftali [Germán.Estévez] 09-09-2015 16:01:39

Cita:

Empezado por Delphius (Mensaje 496415)
Estás muy verde y demasiado lento. Te pones a ver un bosque donde no lo hay.
A ver, te tiro otro centro para que lo cabecees.

Pepito pasa 5 veces por el lector. ¿Está afuera o adentro? Respuesta: ADENTRO. Aún no ha salido del lugar.
Juancito pasa 8 veces por el lector. ¿Está afuero o adentro? Respuesta: AFUERA. Se retiró.
Pedrito que está de licencia, no ha venido. pasó 0 veces.

Aunque en teoría eso "cuadra", quien haya trabajado en una empresa con lectores y haya visto los marcajes, sabe en a la hora de la verdad ese control con un único lector no es tan sencillo ni mucho menos.
En el marco ideal es tan sencillo como comentas, pero en la vida real, muchas veces los marcajes no son "ideales" y esa regla no funciona.
Desde el día que vas despistado y entras sin marcar, hasta el día que el lector se ha estropeado y no va, el día que el dedo no va y no marca (para más de lo habitual dependiendo de los lectores), el día que el lector lee 2 veces la huella, etc, etc, etc,...

Debes revisar primero los tipos de lectores, porque no es lo mismo un lector de huellas, que un lector para control de acceso (algunos de estos tienen opciones para definir el tipo de acceso). Tal vez te salga más a cuenta colocar 2 (como alguien creo que ya ha comentado).

Neftali [Germán.Estévez] 09-09-2015 16:03:07

Cita:

Empezado por Delphius (Mensaje 496417)
Necesariamente debes tener armado una especie de "calendario laboral". Y comprobar cada movimiento contra esto.

En la vida real eso tampoco funciona siempre, porqwue hay empleados que no tienen un calendario laboral estricto.
Comerciales que hacen visitas o personal que tiene horario flexible. Hay que tener en cuenta si hay personal con estas características en la plantilla.

Neftali [Germán.Estévez] 09-09-2015 16:05:09

Cita:

Empezado por Delphius (Mensaje 496420)
No es necesario. De hacerlo por esta vía se deberá dejar un teclado (ya sea físico o por una pantalla touch) por el cual ingresar datos, y se deja una posibilidad a que el personal le busque algunas vueltas.

No es necesario teclado.
Hay dispositivos para control de acceso (mediante huella o tarjeta) que ya incluyen esas opciones.


Cita:

Empezado por Delphius (Mensaje 496420)
A lo máximo, aquí está:
Movimiento pares: ha salido.
Movimiento impares: ha entrado.

Como ya he comentado, en la práctica ese control acaba siendo poco efectivo y poco exacto en el control.

AgustinOrtu 09-09-2015 16:22:32

O establecer cierto margen para la misma huella (30 segundos de diferencia) y no tener que complicarse con sensores

Delphius 09-09-2015 20:51:26

A ver a los vivitos:
Si el sistema detecta que pasa la misma huella en tan poco tiempo, que se podría configurar, o si alguien se pone a jugar con el aparatito no se da el paso.

El aparato se ubica estrategicamente en la puerta principal. No entras ni sales SIN pasar el dedito, o escanear el iris, el rostro, o por audio... o el sistema de identificación biométrico que se ponga. En casos excepcionales (y sobre todo cuando el aparato no funciona) es que está siempre un encargado, o guardia, que asegura de que se cumpla esto. SIEMPRE debe haber alguien, un sistema no reemplaza al ser humano. El sistema está para asistirlo. Nada más.

Lo que estoy viendo en sus comentarios es que pretenden anular una medida física, y sustituirla únicamente por algo lógico. Con todo respeto: no se hace así nunca. Y no he visto hasta la fecha en ningún lugar que se haya delegado de forma absoluta el acceso a un soft.

Además di el escenario más básico posible. Ya es luego responsabilidad de El_Raso que examine que tan riguroso debe ser el control y que otras medidas de seguridad incorporar.
Y si se puede estar con un único aparatito, que nada baratito son. Se debe acompañar lo que he comentado con otras medidas. Creo que eso es por demás sobre entendido.

Respecto al calendario. SI es necesario. Aún cuando son flexibles se debe llevar esto.
A ver, si el jefecito tiene un arreglo con su personal en darle una agenda muy libre no interesa. Lo importante es que se deje asentado de alguna forma que Pepito trabaja en ciertos días y horas, como así para cada uno.
Es responsabilidad ya de la persona delegada en armar la planilla laboral que haga su trabajo. El sistema toma esta planilla y empieza a hacer los debido controles.
Al sistema le importa tres huevos si es una jornada flexible, o que... el solo ve una planilla de trabajo. Ya sea que esta planilla se haga dia a dia, semana a semana, mensualmente, o por horas. NO IMPORTA. Tal planilla debe existir. ¿Sino de que otra forma se va a controlar las entradas y salidas físicas con el trabajo efectivo?

Y para los que andan de "visita". También, al sistema le importa 5 pepinos. El detecta que es un caso de personal "visitante".

En fin, que hay más por analizar, seguro. Hay mil vueltas de como encararlo. Lo que me causa risa es que El_Raso pretenda sacar "el algoritmo" a algo que ni siquiera se ha calentado por analizar en detalles.

AgustinOrtu 09-09-2015 20:56:08

Yo estoy de acuerdo con Marce (no te enojes :D)

No es bueno depender al 100% del programa

Osea que si se corta la luz ---> Dia libre??????


La franja horaria es GMT +2. Ahora son las 05:17:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi