Reserva de los recursos compartidos de una Empresa
Este ejemplo está dedicado a mis hijos (Lorena y Pablo) que en sus vidas laborables les surgió el problema de cómo compartir recursos (Medios) que la empresa pone para el servicio de sus trabajadores.
En la actualidad, con el auge del teletrabajo y trabajos fuera de la oficina, es más relevante la buena gestión de los recursos de las empresas, estas situaciones no son nuevas, pero en estos momentos se amplia las necesidades de los medios y la optimización de la gestión de los mismos.
Por ejemplo, una plaza de garaje asignada a una persona, cuando esta persona está de vacaciones o de viaje de trabajo, puede ofrecer dicha plaza a otro compañero que no la tiene asignada.
Para entender su funcionamiento es muy importante entender cuáles fueron los requisitos que he utilizado para hacer el desarrollo.
Requisitos del aplicativo:
- La Empresa dispone de un inventario de todos los medios/recursos que está facilitando para sus trabajadores. Estos bienes tienen una clasificación que indica:
- Clave de medio.
- Tiempo máximo de reserva (no es igual reservar una sala de reuniones que una plaza de aparcamiento).
- Hora inicial del día en el que se puede reservar.
- Hora final del día en el que se puede reservar.
- Todos los medios (salas de reuniones, proyectores, plazas de garaje, coches, despachos, escritorios, etc. ) tienen una persona de la organización como “propietario/gestor”.
- Son los propietarios quienes indican las fechas en la que el medio va a poder ser compartida. Los medios que pudieran ser generales como una sala de reuniones, también tienen un “propietario” que define los periodos de disponibilidad.
- Todas las consultas de disponibilidad se concretarán en un periodo determinado. Ahora el aplicativo tiene que muestra disponibilidad y reuniones desde hace 10 días y hasta 30 días más de la fecha actual. Estos son parámetros del CONFIG que se pueden cambiar sin ningún problema.
- Todo el mundo puede ver los medios reservados y la disponibilidad de los mismos, pero sólo los propietarios del medio o de la reserva, pueden cambiar estos o cancelar la reserva.
- Los administradores pueden hacer de todo, sin restricciones.
El aplicativo en modo DEMO está en https://fhumanes.com/reservations
Los usuarios de acceso que tiene son:
- admin/admin – Administrador
- user1/user1 – Usuario normal
- user2/user2 – Usuario normal
Como siempre indico en estos ejemplos que hago, el fuente está para ser descargado y que cada uno lo adapte a su Empresa.
También, para aquellos que empezáis con PHPRunner, este ejemplo os puede ayudar a aprender muchas de las características de este excelente entorno de programación. No tiene mucho código y es muy fácil de leer.
Descripción técnica del desarrollo
Se ha desarrollado en PHPRunner 10.2 y Mysql.
El modelo de datos es bastante simple:
El único “secreto” que tiene, con respecto a otros desarrollos que tengo en el portal, es que cada vez que se hace una reserva se actualiza la tabla “available_block” que son los bloques de fecha en la que el medio está libre para poder ser reservado.
(1) Aunque la información no se presenta en los clásicos “LIST”, el aplicativo mantiene las características de los filtros y las funciones de búsquedas.
(2) Para mostrar los rangos de fecha se ha utilizado las librerías de javascript DayPilot, que ya he utilizado en otras ocasiones. Es una versión DEMO.
(3) En la disponibilidad y en las reservas, al posicionarse sobre ellas, facilita información en una popup y si se hace clic en ella muestra en una nueva ventana para hacer la reserva o modificarla.
El aplicativo está en inglés y en español.
A continuación dejaré algunos ejemplos del código fuente, para que apreciéis qué simple es la integración con las librerías de javascript, en este caso con Daypilot.
daypilot_availability.php (gráfica para facilitar la disponibilidad de fechas en las reservas)
media_availability.php (gráfico que representa el LIST de la disponibilidad de los medios)
reservations_view_cancellation.php (gráfico que representa el LIST de las reservas que existe, la consulta y si procede, la cancelación de la misma)
Para cualquier duda o lo que necesitéis, poneros en contacto conmigo a través de email [email protected]
Os dejo los fuentes y copia de la Base de Datos, para que lo podáis instalar en vuestros equipos.