Crear sistema permitirá que cada usuario registre la cantidad de horas y unidades trabajadas, además de marcar en un mapa (Google Maps, OpenStreetMap u otro similar) la zona donde se realizó el trabajo.
Para facilitar el registro, el sistema obtendrá datos automáticamente desde la base de datos o mediante la api rest de dolibarr, precargando información relevante como el nombre del cliente y los servicios antes de que el usuario complete el reporte.
Las tecnologías principales serán Laravel para el backend y React para el frontend, integrando mapas interactivos mediante APIs externas (Google Maps, OpenStreetMap, etc.).
El sistema también debe permitir generar reportes filtrados por fecha (día, mes o periodo personalizado) y exportar esos reportes en formato PDF, utilizando librerías como DomPDF.
La integración con Dolibarr debe hacerse siguiendo buenas prácticas de autenticación y consumo de API para asegurar la sincronización automática y evitar duplicidades en datos como clientes y servicios.
En resumen:
· Desarrollo backend con Laravel y frontend con React.
· Integración de mapas interactivos para geolocalizar el trabajo.
· Consumo seguro y eficiente de la base de datos o api rest de dolibarr para precargar datos.
· Registro de horas y unidades trabajadas por usuario, vinculadas a ubicaciones sobre el mapa.
· Generación y exportación de reportes en PDF con filtros por fecha.
· Diseño de una interfaz intuitiva y adaptable a distintos dispositivos móviles, mejorando el diseño antiguo del que se adjunta imagen (
carga_de_informes_sistema_viejo.jpg) y haciendo qweu este sea moderno y para smartphone.
***
Perfiles de usuario y alcance
• Proveedor: crea informes para clientes asignados (según asignaciones existentes en las Ordenes de Trabajo generadas en Dolibarr).
• Cliente (lector): consulta informes y estado realizados por uno o varios proveedores a su nombre (incluido saldo visible).
• Administrador: perfil operativo por debajo del Super Admin (gestiona asignaciones, revisa, edita y aprueba o rechaza informes, monitorea estados).
• Super Admin: control total del sistema (uso restringido).
Criterios de saldo y avisos
Los estados a mostrar serán “con saldo” o “sin saldo”. Toda notificación relevante se emitirá por email y con un modal visible dentro del sistema. Las validaciones cruzan los datos ingresados con los registros ya existentes para asegurar que todo quede guardado correctamente y en coherencia con la base real.
Día 1
• Conexión a la base c0erp_prod_test y verificación de acceso.
• Configuración del proyecto base (Laravel 11 + Sanctum / React + Vite + Tailwind).
• Rutas iniciales y middleware de autenticación.
• Roles y permisos básicos (proveedor/cliente/admin/super admin).
• Inicio de la vista de informe.
Tablas focalizadas:
• llx_user (usuarios)
• llx_usergroup, llx_usergroup_user (grupos/roles si aplica)
• llx_societe_commerciaux (asignaciones usuariocliente)
• llx_societe (clientes)
Día 2
• Formulario del informe (cliente asignado, fechas, stock, observaciones).
• Validar y guardar campos contrastando con los datos existentes.
• Integración inicial del mapa para dibujar la ubicación y marcarla en el informe.
Tablas focalizadas:
• llx_commande (cabecera OT)
• llx_commande_extrafields (nombrecampana, fechainicio, fechafin, textopedido)
• llx_commandedet (qty, fechas por línea, oleadas)
• llx_commandedet_extrafields (zonas, provincia, localidad, direccion)
Día 3
• Refinar la integración del mapa y vincular ubicación con el informe.
• Configurar campo de incidencias con valores por defecto para agilizar carga.
• Si alcanza el tiempo, preparar integración de imágenes.
Tablas focalizadas:
• llx_commandedet (fechas por línea)
• llx_commandedet_extrafields (zonas y dirección)
• llx_commande_extrafields (textopedido para incidencias si corresponde)
Día 4
• Integrar subida de imágenes y asociación a la ubicación marcada.
• Autorrellenar descripción de fotos con el nombre del lugar indicado en el mapa.
• Dejar preparada la generación/descarga del informe.
Tablas focalizadas:
• llx_commandedet_extrafields (referencias/paths si se registran)
• llx_commande / llx_commande_extrafields (cabecera para metadatos)
Día 5
• Listados de informes con filtros (cliente, fecha, estado).
• Alertas y validaciones de stock (modal + email si hay inconsistencias).
• Avisos de estado de saldo: “con saldo” o “sin saldo” según reglas acordadas.
Tablas focalizadas:
• llx_commande, llx_commande_extrafields (cabecera/fechas)
• llx_commandedet (stock/qty)
• llx_societe (cliente)
• llx_societe_commerciaux (visibilidad por usuario)
Día 6
• Pulido de UX: validaciones extra y responsive completo para smartphone.
• Mejoras de usabilidad para lectura clara de unidades restantes/estado de saldo.
• Optimización de consultas (selects y joins críticos).
Día 7
• Pruebas de extremo a extremo (proveedor/cliente/admin).
• Corrección de errores y documentación breve (uso y flujos).
• Informe final de la semana con conclusiones.
Prazo de Entrega: Não estabelecido