Volviendo por mis fueros y luego de unas vacaciones que no fueron vacaciones sino mas bien un periodo de aprendizaje que me hacia mucha falta (tanto como unas vacaciones) les traigo hoy una aplicación hecha en html5 php y mysql que les permite registrar la hora de entrada y de salida de un empleado.

Tratando de aprender de los diseñadores de paginas web he hecho este intento con la esperanza de lograr que sea usable y que sea agradable a la vista. Eche mano de un par de jquerys que me parecieron divertidos: Jquery-backstrech para hacer un fondo de pagina (background) mas dinámico pudiendo colocar fotos/imágenes intercambiables, no como un carrusel, sino mas bien como un cambiador de fondo de pantallas como los usados por «Variety» en Linux o el que trae por defecto el «guindou». El otro es jquery.easy-ticket que permite colocar citas en un div y las hace pasar una a una en ese div con algunas animaciones prefijadas.

Por supuesto, he dejado de lado el uso de html solamente, me ha parecido estupendo empezar a manejar Bootstraps para los diseños pues facilita un mundo el uso de las ventanas modales, el encuadre de divs, el encuadre de botones y además no debemos olvidar que ya no hay que preocuparse mas por diseñar para cada tipo de dispositivo o por si tenemos el jquery correcto que necesitamos porque las plantillas hechas con bootstrap ya se ocupan de eso.

Captura de pantalla de 2015-10-07 08:00:02Funcionamiento de la aplicación
La única labor del sistema es encargarse de registrar la entrada y la salida del personal que labora en la empresa. Luego de iniciarse el sistema, en la única pagina que se muestra, el empleado debe presionar la tecla “Enter” si está accesando desde un PC o tocar la pantalla en el área donde se ve el reloj en caso de accesar desde un dispositivo de pantalla táctil; el sistema le responderá con la apertura de una ventana modal donde el empleado debe verificar la hora y la fecha en la que está entrando y luego ubicarse en el campo “Cédula”. En ese campo, el empleado debe teclear su numero de identificación ante la empresa o su nombre e inmediatamente se mostrará una lista contentiva de los datos que coinciden con lo anteriormente escrito en forma de lista por debajo del campo donde introdujo el dato.  Solo resta presionar la tecla “Enter” si está interactuando desde un PC o seleccionar el dato acorde con lo escrito si accede desde una pantalla táctil y luego hacer “clic” o “tap” en el botón “Registrar”.

Captura de pantalla de 2015-10-07 08:00:31

Captura de pantalla de 2015-10-07 08:00:33

Si todo está bien, simplemente dará el mensaje “Datos Registrados” conjuntamente con la información de si fue registrada una ENTRADA o una SALIDA.

Captura de pantalla de 2015-10-07 08:28:33

En caso contrario, el sistema analiza si ya hubo una entrada o una salida registrada para ese empleado y muestra el mensaje: “Ya se ha registrado una “Entrada / Salida” ”.

Captura de pantalla de 2015-10-07 08:01:44

Este sistema esta pensado para que funcione en un sistema de turnos donde el empleado realiza una entrada y una salida al día.

Los reportes que genera este sistema se verán desde el sistema principal donde el administrador del sistema tiene el control de otras tareas.

Lógica Del Sistema

La idea principal es registrar la entrada y la salida de un empleado, el sistema fluye dándole la opción al usuario de ver la hora y la fecha que se va a registrar que ciertamente es real pues es la misma hora del computador servidor y que por lo general es muy difícil que sea diferente a la hora de cualquier otro reloj del país donde funciona el sistema. El usuario puede ver la fecha y la hora cuando comienza a interactuar con el sistema pero cuando entra en la fase de registro de la hora de entrada la hora que aparece para registrar es “estática”, es decir no se mueve como lo hace el reloj de la pagina principal, permitiendo entonces que sea exactamente esa hora en la que presionó Enter o hizo tap en la pantalla la que se registre en la base de datos. Inmediatamente después de verificar en los campos mostrados que los datos son correctos, el usuario debe escribir al menos 3 caracteres, en el único campo que se le permite, de los datos con los que es identificado en la empresa para que el sistema busque y genere una lista desde donde el usuario puede seleccionar los datos completos; de esta manera evitamos que se registre cualquier otra persona que no esté en la base de datos relacionada a este sistema y a la vez, permite registrar los datos exactos tal cual como vienen de la base de datos de empleados.

Al momento de guardar, el sistema se encarga de evaluar, según la hora que se está registrando, si es una entrada o una salida. Toma en cuenta si la hora es en la mañana (am) o es en la tarde (pm) para guardar un registro llamado ENTRADA para cuando la hora es “am” y SALIDA para cuando la hora es “pm” en la base de datos. De esta manera al ver los registros en la base de datos se puede contabilizar si ya se ha entrado o se ha salido en ese mismo día de una manera mas sencilla. El mismo sistema cambia el dato a registrar cuando cambia la hora al mediodía, así no hay manera de registrar dos veces una entrada o una salida en ese mismo día.

Base de datos Auditable

La base de datos posee el campo para guardar la fecha de cada registro y el nombre del administrador del sistema o el usuario que dio inicio a la actividad del sistema en ese día.

Todos los archivos necesarios mas la tabla de datos «tbinout» que debe ser guardada o recreada en una base de datos con el nombre que Uds mas les guste esta AQUÍ  en un archivo zip.

Hagan sus comentarios con sabiduría. Esta es la primera vez de muchas (eso espero.!) que comparto una aplicación de este tipo en Internet. Utilicé One Drive para que sea publica la descarga así que no se que tan confiable es eso DROPBOX (es posible que les pida registrarse pero no se preocupen… es gratuito..!) porque ONE DRIVE se puso intransigente con el espacio, esto será así hasta que logre dar con la forma correcta de utilizar Github.

ACTUALIZACIÓN: Aunque estaba renuente mas por desconocimiento y cierto grado de escepticismo que por otra cosa, he seguido los consejos de muchos amigos desarrolladores que han depositado su confianza en esa plataforma de alcance inimaginable para mi como lo es GitLab y he colocado por ahora el repositorio de este pequeño sistema. Tratando de mejorar el desarrollo y también como para subir un poco el nivel de los desarrollos que pondré a disposición para por supuesto equiparar con los desarrollos que en gitlab se descargan de manera gratuita para dar solución a muchas situaciones informáticas, he actualizado este pequeño sistema implementándolo de tal manera que siga el paradigma MVC usado por el framework Codeigniter.

Aquí el enlace a Mega: http://mega.co.nz/sistemaentradaysalidaweb/chkin-chkout.local

Si les parece buena y quieren aportar cualquier idea para mejorar la aplicación les estaré eternamente agradecido por ayudar a todos los que convivimos en esta tierra de Unos y Ceros.!

Si deseas apalancar económicamente mis desarrollos, bridarme un café o un té puedes hacerlo por aqui: PayPal.Me/doblea71

También tengo cuentas en billeteras como Blockchain, Uphold, Coinbase, Payeer, Payoneer con lo que también les informo que acepto: Bitcoin(BTC), Litecoin(LTC), Dogecoin(XDG), Monero (XMR), Dashcoin (DSH), Onixcoin (ONX en Venezuela) y Bytecoin (BCN). Un Millón de Gracias.