# CHANGELOG - SIIP WhatsApp Notifications Plugin

## VERSIÓN 4.7.4 - 15-07-2026

### 🐛 Correcciones (Bug Fixes)
1️⃣ **Preservación de Contraseña de Antena Desconectada**: Se implementó una lógica de validación para evitar que el script de auditoría (`audit_client_passwords.php`) y la automatización del plugin sobrescriban una contraseña real y válida que ya esté registrada en UCRM con la leyenda `"Antena desconectada al momento de obtener la contraseña"`. Si el CPE está desconectado pero ya tenía una clave configurada en UCRM, ésta se preserva para que los instaladores puedan consultarla y utilizarla en las órdenes de soporte en sitio.

## VERSIÓN 4.7.3 - 13-07-2026

### 🔄 Mejoras (Enhancements)
1️⃣ **Sincronización Inmediata en CallBell**: Se implementó el refresco en tiempo real del objeto de notificación `$notification->clientData` antes de llamar a `verifyClientActionToDo()`, garantizando que la contraseña corregida y el nuevo Site/Antena se actualicen en CallBell inmediatamente en el mismo webhook.
2️⃣ **Robustez y Detección de Etiquetas**: Se actualizó la lógica en `client.edit` de `Plugin.php` para buscar las etiquetas (`OBTENER PASSWORD ANTENA`, etc.) directamente en `$notification->clientData['tags']`, haciendo que funcione correctamente con la estructura de webhooks de producción de UCRM que no contienen `extraData`.
3️⃣ **Integración del Logger del Plugin**: Se mejoró el script de auditoría de contraseñas (`audit_client_passwords.php`) para registrar sus mensajes de progreso y excepciones de la API de UISP directamente en el log principal de UCRM (`data/plugin.log`) en lugar de enmascararlos en un log local.
4️⃣ **Prevención de Sobrescritura de Red**: Se agregaron salvaguardas en `audit_client_passwords.php` y `ejemplo_script_actualizador.php` para evitar que fallos de conexión o respuestas parciales de la API de UISP sobrescriban el Site con `"Sin SITE"` o la Antena con `"REPETIDOR"` si el CRM ya tiene información sectorial válida.
5️⃣ **Resolución Inteligente de Torres (AP Fallback)**: Se implementó un fallback que consulta el Site del AP Device al que está conectado inalámbricamente la antena si el Sitio del Cliente no tiene configurada la jerarquía Padre-Hijo en UISP, logrando sincronizar la Torre de manera automática en el CRM.


## VERSIÓN 4.7.2 - 10-06-2026

### 🔄 Mejoras (Enhancements)
1️⃣ **Ordenamiento de Tareas de Instaladores**: Se implementó el ordenamiento descendente (de más reciente a más antiguo) por fecha en la consulta de tareas/tickets activos del instalador, permitiendo al administrador ver primero los trabajos más recientes asignados.

## VERSIÓN 4.7.1 - 05-06-2026

### 🐛 Correcciones (Bug Fixes)
1️⃣ **Robustez en Navegación (Tabs UI)**: Se reemplazó la búsqueda de pestañas basada en la inspección de atributos inline `onclick` (que fallaba si el servidor/UCRM en producción los sanitizaba, los eliminaba o reescribía sus comillas) por un atributo estándar `data-tab="..."` en el HTML, resolviendo el problema que bloqueaba los menús del portal en producción.
2️⃣ **Filtro de Tareas de Instaladores**: Se corrigió el parámetro de consulta a la API de UCRM en la sección de gestión de instaladores. Ahora se pasa `'statuses' => [0, 1]` para obtener únicamente los tickets con estado *Abierto* (`0`) o *En curso/Pendiente* (`1`), excluyendo correctamente los tickets *Cerrados* (`2`).

## VERSIÓN 4.7.0 - 04-06-2026

### ✨ Nuevas Características (Features)
1️⃣ **Soporte para Eventos de Pagos Completo**: Se implementó el soporte para procesar los eventos `payment.delete` (pago eliminado), `payment.unmatch` (pago desvinculado) y `payment.edit` (pago editado) en UISP. Al recibir cualquiera de estos eventos, se recalcula y sincroniza automáticamente en tiempo real el nuevo saldo y estado del cliente en Callbell.
2️⃣ **Evitar Consultas redundantes 404**: Se optimizó la fábrica `NotificationDataFactory` para mapear los objetos de la entidad directamente desde el payload del webhook (`extraData.entity` o `extraData.entityBeforeEdit`), evitando errores 404 en la API de UCRM al procesar la eliminación de pagos (`payment.delete`).

### ⚡ Optimización y Limpieza (Performance & Chores)
1️⃣ **Remoción de Dependencias Innecesarias**: Se eliminó `"google/apiclient"` de `composer.json`, reduciendo el tamaño en disco de la carpeta `vendor` de **222 MB a sólo 28 MB** (un 87% menos).
2️⃣ **Exclusiones de Empaquetado**: Se optimizó el empaquetador `pack-plugin-versioned.php` para ignorar archivos locales de prueba, ejecutables de composer, logs locales (`data/`) y comprobantes PDF temporales (`comprobantes/`), reduciendo el tamaño final del archivo ZIP de **~45 MB a sólo 8.1 MB** (un 82% menos).

## VERSIÓN 4.6.1 - 11-05-2026

### 🐛 Correcciones (Bug Fixes)
1️⃣ **Fix UI Dashboard (Stripe)**: Resolución de errores de sintaxis JavaScript en el portal de pagos (uso de comillas simples en strings multilínea en `views/stripe.php`) que bloqueaban el renderizado y la navegación del menú administrativo. 
2️⃣ **Mejora del Feedback SPEI**: Ajuste en la lógica de estados de pago de Stripe para mostrar feedback más claro ("Pago en proceso") en lugar de mensajes genéricos de error al recibir estados de procesamiento de transferencias SPEI.

## VERSIÓN 4.6.0 - 11-04-2026

### 🚀 Nuevas Características (Features)
1️⃣ **Auditoría de Pagos Incompletos**: Agregados nuevos scripts (`scripts-uisp/audit_incomplete_pi.php` y `clean_incomplete_pi.php`) para auditar y limpiar intenciones de pago en el limbo que ocurrieron debido a falsas duplicidades de Stripe, protegiendo las referencias OXXO vigentes.
2️⃣ **Mejora del Historial SPEI**: Ajuste de vistas (`views/stripe.php` y `public.php`) para desplegar correctamente un "Historial de Intenciones de Pago por transferencia".

### 🐛 Correcciones (Bug Fixes)
1️⃣ **Fix Duplicidad Intenciones de Pago**: Removida la lógica basada en metadatos y fechas debido al retraso del Webhook de Stripe. Se implementó una verificación instantánea a nivel cliente (`customer_cash_balance_transaction.created`) de su saldo (`CashBalance`) en Stripe, evitando intenciones de pago duplicadas tras la financiación mediante transferencia SPEI.
2️⃣ **Fix Fichas OXXO y Microservicio**: Restaurado el microservicio Docker (`puppeteer-server`) mediante actualización de dependencias (`p-limit`).
3️⃣ **Fix Diseño de Ficha OXXO**: Evita que el panel izquierdo de llenado se estire junto a la imagen generada de la ficha, reubicando funcionalmente los accesos "Ver en CRM".

## VERSIÓN 4.5.0 - 13-03-2026

### ⚠️ Requisito Técnico (Update)
- **PHP**: Se requiere **PHP 8.1 o superior** para soportar las nuevas dependencias de AWS. (Habilitado en servidor de pruebas).

### ✨ Nuevas Características (Features)

1️⃣ **Gestión de Instaladores**: Módulo para visualizar tareas en curso y realizar el reenvío manual de notificaciones de asignación.

### 🐛 Correcciones (Bug Fixes)

1️⃣ **Fix Notificaciones**: Corregido bug que enviaba mensajes de desasignación al cambiar de técnico en tareas activas.

## VERSIÓN 4.4.0 - 10-03-2026

### ✨ Nuevas Características (Features)

1️⃣ **Reenvío manual de notificaciones de tareas**: Nuevo módulo en la sección "Gestión de Instaladores" que permite ver las tareas activas ("En curso") de cada técnico y reenviar manualmente la notificación WhatsApp de asignación con un solo clic.

- **Nuevo endpoint `GET ?action=get_installer_jobs`**: Consulta la API de UCRM para obtener los jobs activos (`status=1`) filtrados por instalador, enriquecidos con nombre del cliente.
- **Nuevo endpoint `POST action=resend_job_notification`**: Simula un webhook `job.edit` (status 0→1) vía loopback curl para disparar el flujo completo de notificación.
- **Tabla interactiva**: Card "📋 Tareas Activas del Instalador" con columnas Folio, Cliente, Fecha, Descripción y botón 📨 Reenviar.
- **Icono 📋 en tabla de instaladores**: Permite cargar las tareas activas de cualquier técnico con un clic.

## VERSIÓN 4.3.1 - 10-03-2026

### 🐛 Correcciones (Bug Fixes)

1️⃣ **Fix Notificación de Cambio de Instalador**: Corregido bug crítico en `AbstractMessageNotifierFacade.php` donde al cambiar de técnico en una tarea **"En curso"**, el **nuevo** instalador recibía el mensaje de **desasignación** (❌ "se te ha desasignado la tarea...") en lugar de un mensaje de **asignación** con los datos del cliente.

**Causa raíz**: La bandera `$changeInstaller=true` se pasaba tanto a la notificación del técnico anterior como a la del nuevo, causando que ambos recibieran la plantilla de desasignación. El fix envía `false` al nuevo técnico para que use la plantilla de asignación normal.

## VERSIÓN 4.3.0 - 23-02-2026

### 🔐 Seguridad y Acceso (Login)

1️⃣ **Sistema de Login Integrado**:
_ Implementada pantalla de inicio de sesión "Premium" para acceso externo
_ Validación estricta con la API de UISP (endpoint `/user/login`)
_ Soporte completo para autenticación de dos factores (2FA / TOTP)
_ Control de roles: Acceso restringido exclusivamente a administradores y súper administradores
\_ Manejo de estado de sesiones con `sessionStorage` y validación híbrida PHP/JS

2️⃣ **Protección de Rutas (Proxy de Sesión)**:
_ Nuevo sistema PHP para detectar el contexto de la URL (Pública vs Privada CRM)
_ Auto-login transparente si existe una sesión válida en el navegador desde el portal UCRM
\_ Botón condicional de "Cerrar Sesión" exclusivo para accesos desde URL pública

### 💎 Rediseño Premium de Interfaz (UI/UX)

1️⃣ **Autenticación Premium (Stitch Glassmorphism)**:
_ Pantalla de login elegante usando tendencias de Glassmorphism (`blur`, transparencias RGBA, bordes sutiles iluminados)
_ Partículas flotantes decorativas con efecto desenfoque radial en el fondo oscuro
_ Inputs "Glow" reactivos y botones con gradientes vibrantes y sombra perimetral flotante
_ Interruptor ('Toggle Switch') animado con física de rebote para alternar entre modo Claro y Oscuro
\_ Ocultamiento de textos truncados ("Modo Osc...") en favor de una experiencia más visual y limpia con íconos deslizables

## VERSIÓN 4.2.2 - 10-02-2026

### ✨ Nuevas Características (Features)

1️⃣ **Sistema de Navegación por Pestañas**:
_ Implementado sistema de pestañas horizontal similar a siip-payments-tools
_ Permite cambiar entre módulos sin volver al dashboard principal
_ Pestañas sticky que permanecen fijas al hacer scroll
_ Navegación fluida: Instaladores ↔ Notificaciones ↔ Pagos SPEI ↔ Pagos OXXO
_ Mejora significativa en la UX de navegación
_ Inicialización inteligente de módulos (carga solo cuando se accede)

### 🎨 Mejoras Visuales

- Pestañas con iconos representativos de cada módulo
- Estilo consistente con el diseño del plugin siip-payments-tools
- Adaptación completa a modos claro y oscuro
- Animaciones suaves en hover y transiciones de pestañas

## VERSIÓN 4.2.1 - 10-02-2026

### 🎨 Mejoras Visuales (Visual Enhancements)

1️⃣ **Footer Sticky (Pegado al Fondo)**:
_ Implementado sistema Flexbox en body y container
_ El footer ahora siempre se posiciona al fondo de la página \* Resuelve problema de footer flotante en módulos con poco contenido

2️⃣ **Footer con Versión Dinámica**:
_ Agregado footer profesional con branding SIIP Internet
_ Copyright dinámico con año actual usando PHP
_ Visualización clara de la versión del plugin (4.2.1)
_ Border superior prominente con color primario

### 🔄 Consistencia Visual

- Alineado con mejoras visuales del plugin `siip-payments-tools` v2.2.11
- Mantenida coherencia en diseño entre todos los plugins SIIP

### 📝 Nota

- Las esquinas redondeadas en imágenes del menú se consideraron pero se revirtieron
  debido a que los logos rectangulares (Stripe, OXXO) se distorsionaban con `object-fit: cover`

## VERSIÓN 4.2.0 - 17-01-2026

### 🚀 Nuevas Características (Features)

1. **Visualizador de Pagos Mensuales**:
   - Nueva sección en el portal administrativo para análisis visual de pagos.
   - Selector de mes para consultar estadísticas de cualquier período.
   - Tarjetas estadísticas mostrando: Total de clientes activos, Clientes que pagaron, Clientes pendientes.
   - Gráfica de dona (doughnut) interactiva con Chart.js mostrando proporción de pagos.
   - Tabla detallada de clientes pendientes con información de saldo.
   - Cálculo automático de porcentajes de completitud.
   - Loader/spinner animado mientras se cargan los datos.

2. **Integración de Microservicio para Metadata de Stripe**:
   - Nuevo microservicio Node.js (`vouchers-oxxopay-generator-service`) con acceso directo a la base de datos UCRM.
   - Endpoint `/stripe-metadata/:id` para obtener metadata de pagos Stripe que no está disponible en la API de UCRM.
   - Endpoint `/payments/:id/user` para actualizar el `userId` de pagos vía SQL directo (campo no modificable por API).
   - Configuración mediante archivo `.env` para credenciales de base de datos.

### 🔵 Mejoras (Enhancements)

1. **Sincronización Mejorada con CallBell**:
   - Fix crítico en sincronización de saldo: Ahora se actualiza correctamente en CallBell cuando se agregan facturas.
   - Logging detallado agregado a `onlyUpdate()` para diagnóstico de sincronización.
   - Comparación inteligente de campos para evitar PATCH innecesarios.
   - Sincronización automática al agregar/editar facturas (`invoice.add`, `invoice.edit`).
   - Sincronización automática al editar servicios (`service.edit`, `service.suspend`, etc.).

2. **Mejora en Categorización de Pagos Stripe**:
   - Lógica mejorada en `ensureStripePaymentAttribute()` para asignar correctamente el atributo `tipoPagoStripe`.
   - Normalización de valores de metadata: "OXXO" → "OXXO Pay" para coincidir con opciones de UCRM.
   - Prioridad a metadata obtenida del microservicio sobre adivinación por nombre de método.
   - Fix de validación 422 para pagos OXXO que fallaban por valor de atributo no válido.

3. **Configuración para Producción**:
   - Archivo `.env` agregado al microservicio con todas las credenciales de base de datos.
   - `docker-compose.yml` refactorizado para usar variables de entorno desde `.env`.
   - Red Docker `unms_internal` configurada para comunicación segura entre servicios.
   - Puerto 5432 de PostgreSQL expuesto en `docker-compose.yml` principal para acceso del microservicio.

### 🐛 Correcciones (Bug Fixes)

1. **Fix Metadata de Pagos Stripe**: Los pagos por transferencia bancaria y OXXO ahora se categorizan correctamente.
2. **Fix sincronización CallBell**: Saldo y estado del cliente ahora se actualizan correctamente en tiempo real.
3. **Fix networking Docker**: Resueltos problemas de `ECONNREFUSED` entre contenedores mediante configuración de red interna.
4. **Fix validación de atributos**: Normalización de valores para evitar errores 422 en la API de UCRM.

### 📝 Documentación

1. Logging mejorado en `ClientCallBellAPI.php` para comparaciones de campo.
2. Logging agregado en `AbstractMessageNotifierFacade.php` para diagnóstico de sync.
3. Documentación completa del flujo de datos del visualizador de pagos.

## VERSIÓN 4.1.0 - 15-01-2026

### 🚀 Nuevas Características (Features)

1. **Microservicio PDF (`pdf-cropper`)**:
   - Nuevo servicio en Python (FastAPI + Poppler) desplegado en Docker (Puerto 8050) para la conversión de PDF a Imagen.
   - Reemplaza la librería `Imagick` de PHP, aislando el procesamiento pesado fuera del plugin.
   - **Modo Full**: Garantiza la conversión del PDF completo respetando su relación de aspecto original (sin recortes ni "square crop").
   - **Overlay de Texto**: Capacidad nativa en el backend para sobreescribir texto dinámicamente (ej. cambiar "Tarjeta de crédito Stripe" por "OXXO Pay") basado en parámetros.
2. **Integración S3 / MinIO**:
   - Implementación de `MinioStorageService`.
   - Los comprobantes (JPG) y Vouchers OXXO se suben automáticamente a MinIO en lugar de usar FTP.
   - Generación de URLs públicas seguras.

### 🧹 Mantenimiento y Limpieza (Chores/Refactor)

1. **Limpieza Automática (Cleanup)**:
   - Se implementó lógica para eliminar archivos temporales locales (PDFs descargados, JPGs generados) inmediatamente después de una subida exitosa a MinIO.
2. **Refactor `ClientCallBellAPI`**:
   - Eliminación de código muerto relacionado con FTP de WordPress.
   - Implementación de cliente HTTP Guzzle para comunicación con `pdf-cropper`.
   - **Cache Busting**: Se añade Timestamp al nombre de archivo (`_time()`) para evitar caché agresivo en WhatsApp/Navegadores.

### 🐛 Correcciones (Bug Fixes)

1. **Fix Recorte de Imagen**: Se eliminó la restricción de relación de aspecto 1:1 (cuadrado) para evitar recortes.
2. **Standardización de Notas**: Actualización de `AbstractStripeOperationsFacade` para incluir explícitamente "OXXO" o "Transferencia" en las notas de pago.

## VERSIÓN 4.0.0 - 10-01-2026

### 🟢 Novedades (Re-diseño UI/UX + Integ. Pagos)

1️⃣ **Portal Administrativo Integrado (Stripe + Oxxo)**: Se ha rediseñado completamente el panel administrativo (`Dashboard`) para incluir una sección dedicada a **Pagos Online**, permitiendo la generación de referencias SPEI y OXXO Pay sin salir del portal.
2️⃣ **Visualización Inline de Vouchers OXXO**: Ahora los comprobantes de pago OXXO se generan y visualizan inmediatamente en una vista partida (Datos + Imagen) dentro del dashboard, eliminando la necesidad de abrir enlaces externos para verificación.
3️⃣ **Carga FTP Híbrida**: Optimización inteligente que sube los vouchers al servidor FTP solo cuando es necesario (integraciones externas/webhooks) y utiliza visualización local para el administrador, garantizando máxima velocidad de interfaz.
4️⃣ **Modo Oscuro & UI Premium**: Nueva capa visual con sidebar expandido, cabecera global "Sticky", y un sistema de colores adaptativo (Modo Sol/Luna) para una mejor experiencia de usuario.
5️⃣ **Seguridad Reforzada**: Refactorización completa del manejo de credenciales, eliminando datos hardcodeados en el código y centralizándolos en la configuración segura del plugin.

### 🔵 Mejoras

1️⃣ **Navegación Intuitiva**: Menú lateral rediseñado con accesos directos claros a "Pagos Stripe", "Notificaciones" y "Gestión de Instaladores".
2️⃣ **Feedback Visual**: Nuevas alertas toast y modales informativos para confirmar acciones (Generación de referencias, errores de API, etc.).
3️⃣ **Compatibilidad**: Ajustes en `manifest.json` y estructura de archivos para asegurar compatibilidad total con las últimas versiones de UISP.

## VERSIÓN 3.1.0 - 07-01-2026

### 🟢 Novedades

1️⃣ **Re-envío Manual de Notificaciones de Pago**: Se añadió un nuevo apartado en el Dashboard que permite buscar clientes y re-disparar notificaciones de WhatsApp para pagos específicos de forma manual.
2️⃣ **Buscador de Clientes en Dashboard**: Integración de buscador dinámico para localizar clientes y visualizar su historial de los últimos 10 pagos.

## VERSIÓN 3.0.0 - 02-01-2026

### 🟢 Novedades

1️⃣ **Soporte Multi-Servicio para Antenas**: Ahora el plugin gestiona múltiples servicios por cliente, mostrando cada contraseña con el formato `Servicio 1: <pass> Servicio 2: <pass> ...`.
2️⃣ **Validación Granular de Provisionamiento**: Se implementó una lógica de detección por etapas (Servicio -> Sitio UISP -> Dispositivo) para evitar generar contraseñas en sitios "Location Inactive".
3️⃣ **Lazy Loading & Optimización de Recursos**: Implementación de un "Lazy Check" que detecta si ya hay una contraseña válida en el CRM para omitir llamadas innecesarias a la API de UISP, mejorando la velocidad y reduciendo el consumo de CPU.

### 🔵 Mejoras

1️⃣ **Etiquetado Inteligente de Servicios**: Las etiquetas `Servicio 1:`, `Servicio 2:` ahora solo aparecen si el cliente tiene múltiples servicios; para un solo servicio, la contraseña se muestra directamente.
2️⃣ **Sincronización Avanzada con CallBell**: - Nuevo campo `Password Antena` enviado en formato JSON estructurado. - Unificación de peticiones PATCH (Resumen + Campos) en una sola llamada para mayor eficiencia.
3️⃣ **Contraseñas "Printer-Friendly"**: El generador de contraseñas ahora utiliza un set de caracteres optimizado para mini-impresoras térmicas (Alfanumérico + `@`, `#`), eliminando caracteres ambiguos como `l`, `I`, `0`, `O`.
4️⃣ **Mensajes de Estado en CRM**: Se agregaron alertas visuales en el campo de contraseña para indicar estados de provisión: `⚠️ Sin sitio vinculado`, `⚠️ Sin antena vinculada`, `⚠️ Cliente sin servicios`.
5️⃣ **Robustez en Entornos de Prueba**: Refinamiento del bypass de desarrollo para mantener la estabilidad de las claves generadas y evitar bucles infinitos de webhooks.

### 🟡 Bugs Resueltos

1️⃣ **Sincronización de Saldo**: Se corrigió la discrepancia de nombres entre `Saldo Actual` y `Saldo` que causaba actualizaciones redundantes infinitas con CallBell.
2️⃣ **Parseo de Passwords**: Refinamiento de expresiones regulares para capturar correctamente contraseñas multi-servicio.
3️⃣ Se solucionó el bucle infinito de actualizaciones en el atributo `passwordAntenaCliente` que ocurría al detectar cambios en servicios sin dispositivos vinculados.

## VERSIÓN 2.9.3 - 23-12-2025

### 🟢 Novedades

1️⃣ Resolución dinámica del ID del método de pago ("Transferencia bancaria") mediante consulta a la API de UISP, mejorando la portabilidad del plugin entre distintos servidores.
2️⃣ Implementación de registro de pago automático desde Webhook Stripe para eventos de tipo `customer_cash_balance_transaction.created` (Saldo aplicado).

### 🟡 Bugs Resueltos

1️⃣ Se corrigió el error de validación de la API de UCRM (422) mediante el cast explícito de `clientId` a integer y el uso de `methodId` como string.

## VERSIÓN 2.9.2

### 🟡 Bugs Resueltos

1️⃣ Se solucionó un bug que impedía obtener la contraseñas de la bóveda, ya que el response de la API cambió en la última actualización y la esstructura nueva impedía acceder al dato del password

## VERSIÓN 2.8.8

### 🟡 Bugs Resueltos

1️⃣ Se solucionó un bug que impedía al BOT del CallBell mostrar el monto de la referencia de OXXO en el mensaje donde se le entrega el voucher al cliente, para el caso donde el cliente elegía crear su referencia con la CANTIDAD TOTAL.

## VERSIÓN 2.8.7

### 🟢 Novedades

1️⃣ Ahora las referencias de **OXXO Pago** han cambiado, en lugar de enviarse la URL o link de pago al cliente será la imagen del código de barras y la información que aparece en el link directamente en el mensaje, de esta manera será más cómodo para el cliente tener la imagen en su chat a tener que abrir una URL o link externo.

### 🔵 Mejoras

1️⃣ Se modificaron nodos del bot **_OXXO_BOT_** para poder adaptar esta actualización correctamente.
2️⃣ Mejoras en el código fuente del flujo de trabajo para las referencias de OXXO PAGO.

## VERSIÓN 2.8.6

### 🔵 Mejoras

1️⃣ Se modificó la información para el envío de notificaciones a llos instaladores en el flujo de trabajo para la desasignación de tareas que hacía que no se viera correctamente la información

## VERSIÓN 2.8.5

### 🔵 Mejoras

1️⃣ Se modificó la información para el envío de notificaciones a los clientes para su visita técnica: ahora ya no se envían las horas en que serán las visitas, SOLO LA FECHA.
2️⃣ Se crearon nuevas plantillas de tipo utilidad y se adaptaron al flujo de trabajo en el código.

### 🟡 Bugs Resueltos

1️⃣ Se soluciono el bug que impedía enviar notificaciones a los instaladores para nuevas tareas.

## VERSIÓN 2.8.2

### 🟡 Bugs Resueltos

1️⃣ No se enviaban las notificaciones de las tareas al instalador. Se cambió la plantilla de CallBell o WhatsApp con 3 variables en lugar de 8.
2️⃣ Se agregó un nuevo tipo de pago ("applied_to_payment") en las propiedades de los Webhooks recibidos mediante Stripe por concepto de transferencias bancarias. Ya que sólo se revisaba el tipo de pago "funded" y eso hacía que no enviara los comprobantes de pago a los clientes para todos los casos.

## VERSIÓN 2.8.1

### 🟡 Bugs Resueltos

1️⃣ No se enviaban las notificaciones de las tareas al instalador.

## VERSIÓN 2.8.0

### 🟢 Novedades

1️⃣ Envío de contraseña de antena en el mensaje que se manda al instalador cuando se le asigna una tarea/servicio.
2️⃣ Para clientes nuevos o que no tengan el campo personalizado de “Password Antena Cliente” al actualizarlos se les asignará ese campo o cuando se les actualice su servicio.
3️⃣ Ahora se puede modificar tantas veces sea necesaria una tarea o servicio como su fecha o el instalador mientras la tarea permanezca en estado “Abiertos” SIN que se envíen notificaciones a los clientes o instaladores.
4️⃣ Se agregó un prefijo al título de la tarea/servicio agendado cuando recién se da de alta para identificar que esta no ha sido notificada aún y se pueden realizar ajustes.

### 🔵 Mejoras

1️⃣ Se modificó el flujo de trabajo para el envío de notificaciones a los clientes para su visita técnica, ahora son cuatro distintos tipos de flujo, anteriormente tres.
2️⃣ Se reemplazaron algunas plantillas de mensajes de CallBell.
3️⃣ Se renombró el uso de la etiqueta “CREARCLABESTRIPE” por “CREAR CLABE STRIPE” para un mejor entendimiento de su uso.

### 🟡 Bugs Resueltos

1️⃣ Envío de notificaciones a los clientes y a los instaladores al CERRAR una tarea/servicio (Se mandaban mensajes de asignación y de visita del técnico ) haciendo no posible cerrar las tareas.
