PHP – Tiempo y Asistencia con ZKSoftware y ACCESS PRO

Hoy en día existen diversas soluciones tecnológicas que nos pueden ayudar a gestionar el acceso y control de tiempos para el personal de una empresa. Sin embargo comúnmente los administradores de TI se encuentran con el problema entre lo “deseado” y lo que el usuario final piensa que debería ser.  Por lo que en su estricta tarea de mejora continua se interesan en buscar alternativas tecnológicas para cubrir esos deseos que las soluciones actuales no cubren. Y es debido a esos deseos que surge este articulo, con el que daremos paso a soluciones totalmente a la medida y con código abierto, que te convertirá en el genio de los deseos.

Objetivo: Desarrollo de software para gestión de tiempo, asistencia y dispositivos biometricos ZK y ACCESSPRO. Con conexión remota entre dispositivos a través de IP Publica o un dominio.

Como recurso adicional utilizaremos la librería TAD PHP para conectarnos a los biometricos.  Es posible descargarla desde GitHub e instalarla con Composer. Las instrucciones de instalación para Composer las encontraran en la descripción de la librería.

Tecnología:

  1. PHP 5.5 o superior.
  2. MySQL 5.5 o superior.
  3. HTML 5
  4. JavaScript
  5. Jquery
  6. CSS3

Servidores

  1. Ubuntu 16.04 / LAMP
  2. Windows /  XAMPP

Biometricos

  1. AccessPro UX4
  2. AccessPro Iclock 990
  3. AccessPro / ZKEco F19

Nota: Soporta Web 3.0 y 3.1, no se a probado con otros firmware, puede contribuir con eso aportando comentarios de pruebas y ejecucion.

Si deseas instalar  LAMP sobre Ubuntu 16.04 para utilizarlo como servidor de desarrollo te invitamos a ver esta guía de instalación y configuración en Digital Ocean. También es importante destacar que ciertas funciones que estaremos utilizando en el desarrollo de este software estan limitadas al biometrico, es decir, si el biometrico no tiene la función de apagado, este jamas se ejecutara.

Si aun no conoces PHP, MySQL o cualquier otro de los lenguajes y Frameworks mencionados anteriormente te recomendamos algunas guías rápidas que te ayudaran a enfocarte y entender de forma rápida y sencilla.

  1. HTML – DesarrolloWeb.com
  2. CSS – DesarrolloWeb.com
  3. JavaScript – DesarrolloWeb.com
  4. PHP – DesarrolloWeb.com
  5. MySQL

Si ya estas familiarizado con estas tecnologías pasemos a el estilo de trabajo que debemos llevar. En PHP utilizaremos PDO y POO. Así como MVC con plantillas TPL para la vista del cliente final.


Introducción rápida a PHP / PDOPHP & MySQL

PHP  es uno de los lenguajes de programación (estructurada y orientada a objetos) mas utilizado hoy en día, aunque es un lenguaje interprete, sus nuevas versiones prometen un cambio radical en manejo de multiples dependencias con namespaces al estilo .net y java, control de hardware y se encuentra en proceso la integración de software embebido.

POO / PHP es básicamente un simple acronimo de programación orientada a objetos. Siempre que recomiendo algún tutorial para aprender PHP y programación orientada a objetos sugiero los tutoriales de desarrolloweb.com. Si despues de leer esos tutoriales tienes dudas por favor compártelas para resolverlas.

Si no conoces los métodos actuales de conexión a base de datos desde PHP, tienes que saber que mysq_conect; se encuentra depreciado y no es recomendado utilizarlo. Para ello utilizaremos el controlador multicapa basado en objetos de conexión a base de datos, que como breve introducción explicare. Este controlador nos permite establecer conexión a diversos tipos de base de datos, establecer sentencias preparadas y sin duda alguna es mucho mas seguro que su antecesor mysql_conect;, puesto que de manera intrínseca otorga protección contra SQL Injection y tiene un manejo de variables, objetos que al final hace tu labor mas eficiente. Si deseas saber con mayor detalle como trabaja PDO en PHP te recomiendo el siguiente tutorial de NetTuts.

Al final del tutorial encontraras la liga para descargar los archivos SQL y PHP que estaremos utilizando. Mientras tanto pasemos a el modelo de base de datos.

Modelo BDBase de datos

En resumen estaremos utilizando un esquema y dos tablas necesarias para esta aplicación, donde utilizaremos un estándar para llamarlas, siendo de tal forma, el acronimo cat para catalogo y cfg para configuración, seguido de un guion bajo y el termino en concreto al que nos vamos a referir, con el fin de que sea siempre sencillo identificar con que tablas trabajamos y sugerir su contenido.

A continuación el modelo de forma gráfica.