Propósito
Sistema web interno de gestión orientado a un negocio de equipos (inventario, alquiler
con devoluciones programadas, ventas, clientes/terceros y cobros). Las pantallas apuntan
a operación diaria en caja y supervisión, con interfaz tipo app móvil (cabeceras,
viewport, iconos Ionicons).
Stack y herramientas
Backend: PHP con MySQLi, sesiones y CSRF en formularios sensibles.
Composer: Dompdf (PDFs), PhpSpreadsheet (Excel en otros flujos),
PHPMailer (correo).
Integraciones: cola de notificaciones (WhatsApp vía API externa),
correo, y en el worker Telegram para espejo o aviso a administradores.
Roles y seguridad
Roles: ADMINISTRADOR, SUPERVISOR, CAJERO, AUXILIAR. Cada pantalla comprueba el rol antes
de mostrar o ejecutar acciones (por ejemplo ventas solo para quien puede cobrar; cartera
solo admin). Login centralizado vía seguridad.php (redirección si no hay
sesión válida).
Panel
KPIs del mes (solo administrador): ingresos, costo estimado de lo vendido, ganancia
aproximada, cartera pendiente, alertas del día (devoluciones de alquiler) y productos con
stock bajo. Actividad reciente: últimos movimientos de inventario. Hub hacia ventas,
inventario, alertas, cartera, etc.
Ventas
Registro con borrador vs confirmada; al confirmar impacta inventario. Búsqueda AJAX de
productos (excluye tipo servicio en la línea principal) y de servicios de transporte
(tipo SERVICIO). Gestión de terceros con búsqueda. Para alquiler: registros de
devolución programada enlazados a la venta. Listado con filtros y acciones según rol;
cola para envío masivo de documentos por WhatsApp (procesada por cron).
Pagos y devoluciones
Abonos con control de saldo, método de pago y notas; transacciones con bloqueo de fila
(FOR UPDATE). Devoluciones de alquiler (parcial/total) y actualización de
estados atrasados; PDF de recibo para adjuntar o notificar.
Alertas
Próximos vencimientos de devolución (ventana configurable). Alerta de cobro: pagos
acumulados vs ítems vencidos o por vencer (riesgo de mora en alquiler).
Inventario y cartera
Productos con categorías, filtros, existencias y mínimos. Movimientos con historial
filtrable. Cartera (solo admin): estadísticas de ventas confirmadas por rango y
comparación con totales; filtro por vendedor.
Recibos, respaldos y usuarios
Recibos y PDF (ticket 58/80 mm o A4); opciones con WhatsApp. Exportación a Excel por
módulos (terceros, productos, ventas, alquiler…). Alta/edición de usuarios con roles y
CSRF.
Notificaciones
Cola persistente (WhatsApp / email) con reintentos, backoff e idempotencia. Worker en
cron; puede notificar por Telegram a administradores.
Objetivo
Digitalizar el ciclo venta/alquiler → inventario → cobros → devoluciones → alertas, con
roles, trazabilidad, reportes de cartera, PDFs, notificaciones asíncronas y exportación,
en PHP/MySQL para oficina y campo (UI responsive).
Nota: En proyectos reales las claves API y tokens deben ir en variables
de entorno o configuración fuera del repositorio; no en texto plano en el código ni en
capturas públicas.