**Gestion Integral Web** es un sistema de gestión empresarial, diseñado para administrar las operaciones de una empresa de medios de comunicación. Este proyecto representa la migración y modernización de un sistema de escritorio heredado, desarrollado originalmente en VB.NET, a una arquitectura web moderna y robusta.
El sistema se compone de un **backend RESTful API desarrollado en ASP.NET Core** y un **frontend interactivo de tipo SPA (Single Page Application) construido con React y TypeScript**.
---
## Módulos y Funcionalidades Principales
El sistema está organizado en varios módulos clave para cubrir todas las áreas operativas:
### 🚚 Distribución
- **Gestión de Canillitas y Accionistas:** ABM completo, manejo de legajos, zonas, paradas, y estado de baja.
- **Gestión de Distribuidores:** ABM de distribuidores, asignación de zonas y datos de contacto.
- **Gestión de Publicaciones:** Administración de diarios y revistas, incluyendo:
- **Precios:** Definición de precios por día de la semana con historial de vigencia.
- **Recargos:** Configuración de recargos por zona geográfica.
- **Porcentajes de Pago:** Asignación de porcentajes de pago diferenciados para distribuidores y canillitas/accionistas.
- **Secciones:** Administración de las secciones que componen cada publicación (Ej: Deportes, Espectáculos).
- **Movimientos Diarios:**
- Registro de entradas (devoluciones) y salidas (entregas) para distribuidores y canillitas.
- Carga masiva de movimientos para canillitas.
- Control de Devoluciones y gestión de sobrantes y ejemplares sin cargo.
- Gestión de salidas a "Otros Destinos" (ej: canje, protocolo).
- **Liquidaciones:** Proceso para marcar movimientos como liquidados y calcular montos a rendir.
### 🖨️ Impresión
- **Gestión de Stock de Bobinas:**
- Ingreso de bobinas con remito, peso, tipo y planta.
- Trazabilidad completa del estado de cada bobina (Disponible, En Uso, Dañada).
- Asignación de bobinas consumidas a una publicación y sección específica.
- **Registro de Tiradas:**
- Definición de tiradas diarias por publicación y planta.
- Detalle de secciones y cantidad de páginas por cada tirada.
- **Administración de Datos Maestros:** ABM de Plantas de Impresión, Tipos de Bobina y Estados de Bobina.
### 💰 Contabilidad
- **Cuentas Corrientes:** Seguimiento de saldos para distribuidores por empresa.
- **Gestión de Pagos:** Registro de pagos recibidos y realizados a distribuidores, con múltiples tipos de pago.
- **Notas de Crédito y Débito:** Emisión de notas para ajustar las cuentas corrientes de distribuidores y canillitas.
- **Administración de Tipos de Pago.**
### 📻 Radios
- **Gestión de Fonoteca:** ABM de canciones, intérpretes, autores, y ritmos.
- **Generador de Listas de Reproducción:** Herramienta para generar planillas de programación musical en formato Excel (XLSX) y ZIP para su presentación a entidades como AADI y SADAIC.
### 📊 Reportes
- **Módulo de Reportes PDF y Excel:** Generación de una amplia gama de reportes operativos y de gestión.
- **Impresión:** Existencia de Papel, Movimiento de Bobinas, Consumo por Sección/Publicación, Comparativa Mensual de Consumo.
- **Distribución:** Listados de Distribución (General y Canillitas), Control de Devoluciones, Comprobantes de Liquidación.
- **Contabilidad:** Balances de Cuentas Corrientes de Distribuidores.
- **Ventas:** Reportes de Venta Mensual para Secretaría.
### 👤 Usuarios y Seguridad
- **Gestión de Usuarios:** ABM de usuarios del sistema.
- **Control de Acceso Basado en Roles (RBAC):**
- **Perfiles:** Creación de roles de usuario (ej: Administrador, Operador de Distribución).
- **Permisos:** Definición granular de permisos para cada acción del sistema (Ver, Crear, Modificar, Eliminar).
- Asignación flexible de permisos a perfiles.
- **Autenticación Segura:** Mediante JSON Web Tokens (JWT).
- **Auditoría:** Todas las modificaciones a los datos maestros y transacciones importantes se registran en tablas de historial (`_H`).
- **Gestión de Suscriptores:** ABM completo de clientes, incluyendo datos de contacto, dirección de entrega y forma de pago preferida.
- **Ciclo de Vida de la Suscripción:** Creación y administración de suscripciones por cliente y publicación, con fechas de inicio, fin, días de entrega y estados (`Activa`, `Pausada`, `Cancelada`).
- **Facturación Proporcional (Pro-rata):** El sistema genera automáticamente una "Factura de Alta" por el monto proporcional cuando un cliente se suscribe en un período ya cerrado, evitando cobros excesivos en la primera factura.
- **Gestión de Promociones:** ABM de promociones (ej. descuentos porcentuales, bonificación de días) y asignación a suscripciones específicas con vigencia definida.
- **Cuenta Corriente del Suscriptor:** Administración de ajustes manuales (`Crédito`/`Débito`) para manejar situaciones excepcionales como notas de crédito, devoluciones o cargos especiales.
- **Procesos de Cierre Mensual:**
- **Generación de Cierre:** Proceso masivo que calcula y genera todas las facturas del período, aplicando promociones y ajustes.
- **Notificaciones Automáticas:** Envío automático de resúmenes de cuenta por email a cada suscriptor al generar el cierre.
- **Gestión de Débito Automático:**
- **Generación de Archivo:** Creación del archivo de texto plano en formato "Pago Directo" para el Banco Galicia. Las "Facturas de Alta" se excluyen automáticamente de este proceso.
- **Procesamiento de Respuesta:** Herramienta para procesar el archivo de respuesta del banco, actualizando los estados de pago (`Pagada`/`Rechazada`) de forma masiva.
- **Auditoría de Comunicaciones:**
- **Log de Envíos:** Registro detallado de cada correo electrónico enviado (individual o masivo), incluyendo estado (`Enviado`/`Fallido`) y mensajes de error.
- **Historial de Envíos:** Interfaz para consultar el historial de notificaciones enviadas por cada factura o por cada lote de cierre mensual.