Feat: Implementa flujo completo de facturación y promociones
Este commit introduce la funcionalidad completa para la facturación mensual,
la gestión de promociones y la comunicación con el cliente en el módulo
de suscripciones.
Backend:
- Se añade el servicio de Facturación que calcula automáticamente los importes
mensuales basándose en las suscripciones activas, días de entrega y precios.
- Se implementa el servicio DebitoAutomaticoService, capaz de generar el
archivo de texto plano para "Pago Directo Galicia" y de procesar el
archivo de respuesta para la conciliación de pagos.
- Se desarrolla el ABM completo para Promociones (Servicio, Repositorio,
Controlador y DTOs), permitiendo la creación de descuentos por porcentaje
o monto fijo.
- Se implementa la lógica para asignar y desasignar promociones a suscripciones
específicas.
- Se añade un servicio de envío de email (EmailService) integrado con MailKit
y un endpoint para notificar facturas a los clientes.
- Se crea la lógica para registrar pagos manuales (efectivo, tarjeta, etc.)
y actualizar el estado de las facturas.
- Se añaden todos los permisos necesarios a la base de datos para
segmentar el acceso a las nuevas funcionalidades.
Frontend:
- Se crea la página de Facturación, que permite al usuario seleccionar un
período, generar la facturación, listar los resultados y generar el archivo
de débito para el banco.
- Se implementa la funcionalidad para subir y procesar el archivo de
respuesta del banco, actualizando la UI en consecuencia.
- Se añade la página completa para el ABM de Promociones.
- Se integra un modal en la gestión de suscripciones para asignar y
desasignar promociones a un cliente.
- Se añade la opción "Enviar Email" en el menú de acciones de las facturas,
conectada al nuevo endpoint del backend.
- Se completan y corrigen los componentes `PagoManualModal` y `FacturacionPage`
para incluir la lógica de registro de pagos y solucionar errores de TypeScript.
2025-08-01 12:53:17 -03:00
|
|
|
import apiClient from '../apiClient';
|
|
|
|
|
import type { GenerarFacturacionResponseDto } from '../../models/dtos/Suscripciones/GenerarFacturacionResponseDto';
|
|
|
|
|
import type { PagoDto } from '../../models/dtos/Suscripciones/PagoDto';
|
|
|
|
|
import type { CreatePagoDto } from '../../models/dtos/Suscripciones/CreatePagoDto';
|
|
|
|
|
import type { ProcesamientoLoteResponseDto } from '../../models/dtos/Suscripciones/ProcesamientoLoteResponseDto';
|
2025-08-08 09:48:15 -03:00
|
|
|
import type { ResumenCuentaSuscriptorDto } from '../../models/dtos/Suscripciones/ResumenCuentaSuscriptorDto';
|
Feat: Implementa auditoría de envíos de email y mejora la UX
Se introduce un sistema completo de logging para todas las comunicaciones por correo electrónico y se realizan mejoras significativas en la experiencia del usuario, tanto en la retroalimentación del sistema como en la estética de los emails enviados al cliente.
### ✨ Nuevas Características
- **Auditoría y Log de Envíos de Email:**
- Se ha creado una nueva tabla `com_EmailLogs` en la base de datos para registrar cada intento de envío de correo.
- El `EmailService` ahora centraliza toda la lógica de logging, registrando automáticamente la fecha, destinatario, asunto, estado (`Enviado` o `Fallido`), y mensajes de error detallados.
- Se implementó un nuevo `EmailLogService` y `EmailLogRepository` para gestionar estos registros.
- **Historial de Envíos en la Interfaz de Usuario:**
- Se añade un nuevo ícono de "Historial" (<span style="color: #607d8b;">📧</span>) junto a cada factura en la página de "Consulta de Facturas".
- Al hacer clic, se abre un modal que muestra una tabla detallada con todos los intentos de envío para esa factura, incluyendo el estado y el motivo del error (si lo hubo).
- Esto proporciona una trazabilidad completa y una herramienta de diagnóstico para el usuario final.
### 🔄 Refactorización y Mejoras
- **Mensajes de Éxito Dinámicos:**
- Se ha mejorado la retroalimentación al enviar una factura por PDF. El sistema ahora muestra un mensaje de éxito específico, como "El email... se ha enviado correctamente a suscriptor@email.com", en lugar de un mensaje técnico genérico.
- Se ajustó la cadena de llamadas (`Controller` -> `Service`) para que el email del destinatario esté disponible para la respuesta de la API.
- **Diseño Unificado de Emails:**
- Se ha rediseñado el template HTML para el "Aviso de Cuenta Mensual" para que coincida con la estética del email de "Envío de Factura PDF".
- Ambos correos ahora presentan un diseño profesional y consistente, con cabecera, logo y pie de página, reforzando la imagen de marca.
- **Manejo de Errores de Email Mejorado:**
- El `EmailService` ahora captura excepciones específicas de la librería `MailKit` (ej. `SmtpCommandException`).
- Esto permite registrar en el log errores mucho más precisos y útiles, como rechazos de destinatarios por parte del servidor (`User unknown`), fallos de autenticación, etc., que ahora son visibles en el `Tooltip` del historial.
2025-08-09 21:12:11 -03:00
|
|
|
import type { EmailLogDto } from '../../models/dtos/Comunicaciones/EmailLogDto';
|
Feat: Implementa flujo completo de facturación y promociones
Este commit introduce la funcionalidad completa para la facturación mensual,
la gestión de promociones y la comunicación con el cliente en el módulo
de suscripciones.
Backend:
- Se añade el servicio de Facturación que calcula automáticamente los importes
mensuales basándose en las suscripciones activas, días de entrega y precios.
- Se implementa el servicio DebitoAutomaticoService, capaz de generar el
archivo de texto plano para "Pago Directo Galicia" y de procesar el
archivo de respuesta para la conciliación de pagos.
- Se desarrolla el ABM completo para Promociones (Servicio, Repositorio,
Controlador y DTOs), permitiendo la creación de descuentos por porcentaje
o monto fijo.
- Se implementa la lógica para asignar y desasignar promociones a suscripciones
específicas.
- Se añade un servicio de envío de email (EmailService) integrado con MailKit
y un endpoint para notificar facturas a los clientes.
- Se crea la lógica para registrar pagos manuales (efectivo, tarjeta, etc.)
y actualizar el estado de las facturas.
- Se añaden todos los permisos necesarios a la base de datos para
segmentar el acceso a las nuevas funcionalidades.
Frontend:
- Se crea la página de Facturación, que permite al usuario seleccionar un
período, generar la facturación, listar los resultados y generar el archivo
de débito para el banco.
- Se implementa la funcionalidad para subir y procesar el archivo de
respuesta del banco, actualizando la UI en consecuencia.
- Se añade la página completa para el ABM de Promociones.
- Se integra un modal en la gestión de suscripciones para asignar y
desasignar promociones a un cliente.
- Se añade la opción "Enviar Email" en el menú de acciones de las facturas,
conectada al nuevo endpoint del backend.
- Se completan y corrigen los componentes `PagoManualModal` y `FacturacionPage`
para incluir la lógica de registro de pagos y solucionar errores de TypeScript.
2025-08-01 12:53:17 -03:00
|
|
|
|
|
|
|
|
const API_URL = '/facturacion';
|
|
|
|
|
const DEBITOS_URL = '/debitos';
|
|
|
|
|
const PAGOS_URL = '/pagos';
|
|
|
|
|
|
|
|
|
|
const procesarArchivoRespuesta = async (archivo: File): Promise<ProcesamientoLoteResponseDto> => {
|
|
|
|
|
const formData = new FormData();
|
|
|
|
|
formData.append('archivo', archivo);
|
|
|
|
|
const response = await apiClient.post<ProcesamientoLoteResponseDto>(`${DEBITOS_URL}/procesar-respuesta`, formData, {
|
2025-08-08 09:48:15 -03:00
|
|
|
headers: { 'Content-Type': 'multipart/form-data' },
|
Feat: Implementa flujo completo de facturación y promociones
Este commit introduce la funcionalidad completa para la facturación mensual,
la gestión de promociones y la comunicación con el cliente en el módulo
de suscripciones.
Backend:
- Se añade el servicio de Facturación que calcula automáticamente los importes
mensuales basándose en las suscripciones activas, días de entrega y precios.
- Se implementa el servicio DebitoAutomaticoService, capaz de generar el
archivo de texto plano para "Pago Directo Galicia" y de procesar el
archivo de respuesta para la conciliación de pagos.
- Se desarrolla el ABM completo para Promociones (Servicio, Repositorio,
Controlador y DTOs), permitiendo la creación de descuentos por porcentaje
o monto fijo.
- Se implementa la lógica para asignar y desasignar promociones a suscripciones
específicas.
- Se añade un servicio de envío de email (EmailService) integrado con MailKit
y un endpoint para notificar facturas a los clientes.
- Se crea la lógica para registrar pagos manuales (efectivo, tarjeta, etc.)
y actualizar el estado de las facturas.
- Se añaden todos los permisos necesarios a la base de datos para
segmentar el acceso a las nuevas funcionalidades.
Frontend:
- Se crea la página de Facturación, que permite al usuario seleccionar un
período, generar la facturación, listar los resultados y generar el archivo
de débito para el banco.
- Se implementa la funcionalidad para subir y procesar el archivo de
respuesta del banco, actualizando la UI en consecuencia.
- Se añade la página completa para el ABM de Promociones.
- Se integra un modal en la gestión de suscripciones para asignar y
desasignar promociones a un cliente.
- Se añade la opción "Enviar Email" en el menú de acciones de las facturas,
conectada al nuevo endpoint del backend.
- Se completan y corrigen los componentes `PagoManualModal` y `FacturacionPage`
para incluir la lógica de registro de pagos y solucionar errores de TypeScript.
2025-08-01 12:53:17 -03:00
|
|
|
});
|
|
|
|
|
return response.data;
|
|
|
|
|
};
|
|
|
|
|
|
2025-08-08 09:48:15 -03:00
|
|
|
const getResumenesDeCuentaPorPeriodo = async (anio: number, mes: number, nombreSuscriptor?: string, estadoPago?: string, estadoFacturacion?: string): Promise<ResumenCuentaSuscriptorDto[]> => {
|
|
|
|
|
const params = new URLSearchParams();
|
|
|
|
|
if (nombreSuscriptor) params.append('nombreSuscriptor', nombreSuscriptor);
|
|
|
|
|
if (estadoPago) params.append('estadoPago', estadoPago);
|
|
|
|
|
if (estadoFacturacion) params.append('estadoFacturacion', estadoFacturacion);
|
|
|
|
|
|
|
|
|
|
const queryString = params.toString();
|
|
|
|
|
const url = `${API_URL}/${anio}/${mes}${queryString ? `?${queryString}` : ''}`;
|
|
|
|
|
|
|
|
|
|
const response = await apiClient.get<ResumenCuentaSuscriptorDto[]>(url);
|
Feat: Implementa flujo completo de facturación y promociones
Este commit introduce la funcionalidad completa para la facturación mensual,
la gestión de promociones y la comunicación con el cliente en el módulo
de suscripciones.
Backend:
- Se añade el servicio de Facturación que calcula automáticamente los importes
mensuales basándose en las suscripciones activas, días de entrega y precios.
- Se implementa el servicio DebitoAutomaticoService, capaz de generar el
archivo de texto plano para "Pago Directo Galicia" y de procesar el
archivo de respuesta para la conciliación de pagos.
- Se desarrolla el ABM completo para Promociones (Servicio, Repositorio,
Controlador y DTOs), permitiendo la creación de descuentos por porcentaje
o monto fijo.
- Se implementa la lógica para asignar y desasignar promociones a suscripciones
específicas.
- Se añade un servicio de envío de email (EmailService) integrado con MailKit
y un endpoint para notificar facturas a los clientes.
- Se crea la lógica para registrar pagos manuales (efectivo, tarjeta, etc.)
y actualizar el estado de las facturas.
- Se añaden todos los permisos necesarios a la base de datos para
segmentar el acceso a las nuevas funcionalidades.
Frontend:
- Se crea la página de Facturación, que permite al usuario seleccionar un
período, generar la facturación, listar los resultados y generar el archivo
de débito para el banco.
- Se implementa la funcionalidad para subir y procesar el archivo de
respuesta del banco, actualizando la UI en consecuencia.
- Se añade la página completa para el ABM de Promociones.
- Se integra un modal en la gestión de suscripciones para asignar y
desasignar promociones a un cliente.
- Se añade la opción "Enviar Email" en el menú de acciones de las facturas,
conectada al nuevo endpoint del backend.
- Se completan y corrigen los componentes `PagoManualModal` y `FacturacionPage`
para incluir la lógica de registro de pagos y solucionar errores de TypeScript.
2025-08-01 12:53:17 -03:00
|
|
|
return response.data;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const generarFacturacionMensual = async (anio: number, mes: number): Promise<GenerarFacturacionResponseDto> => {
|
|
|
|
|
const response = await apiClient.post<GenerarFacturacionResponseDto>(`${API_URL}/${anio}/${mes}`);
|
|
|
|
|
return response.data;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const generarArchivoDebito = async (anio: number, mes: number): Promise<{ fileContent: Blob, fileName: string }> => {
|
|
|
|
|
const response = await apiClient.post(`${DEBITOS_URL}/${anio}/${mes}/generar-archivo`, {}, {
|
|
|
|
|
responseType: 'blob',
|
|
|
|
|
});
|
|
|
|
|
const contentDisposition = response.headers['content-disposition'];
|
|
|
|
|
let fileName = `debito_${anio}_${mes}.txt`;
|
|
|
|
|
if (contentDisposition) {
|
|
|
|
|
const fileNameMatch = contentDisposition.match(/filename="(.+)"/);
|
|
|
|
|
if (fileNameMatch && fileNameMatch.length > 1) {
|
|
|
|
|
fileName = fileNameMatch[1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return { fileContent: response.data, fileName: fileName };
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const registrarPagoManual = async (data: CreatePagoDto): Promise<PagoDto> => {
|
|
|
|
|
const response = await apiClient.post<PagoDto>(PAGOS_URL, data);
|
|
|
|
|
return response.data;
|
|
|
|
|
};
|
|
|
|
|
|
2025-08-08 09:48:15 -03:00
|
|
|
const actualizarNumeroFactura = async (idFactura: number, numeroFactura: string): Promise<void> => {
|
|
|
|
|
await apiClient.put(`${API_URL}/${idFactura}/numero-factura`, `"${numeroFactura}"`, {
|
|
|
|
|
headers: { 'Content-Type': 'application/json' }
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const enviarAvisoCuentaPorEmail = async (anio: number, mes: number, idSuscriptor: number): Promise<void> => {
|
|
|
|
|
await apiClient.post(`${API_URL}/${anio}/${mes}/suscriptor/${idSuscriptor}/enviar-aviso`);
|
|
|
|
|
};
|
|
|
|
|
|
Feat: Implementa auditoría de envíos de email y mejora la UX
Se introduce un sistema completo de logging para todas las comunicaciones por correo electrónico y se realizan mejoras significativas en la experiencia del usuario, tanto en la retroalimentación del sistema como en la estética de los emails enviados al cliente.
### ✨ Nuevas Características
- **Auditoría y Log de Envíos de Email:**
- Se ha creado una nueva tabla `com_EmailLogs` en la base de datos para registrar cada intento de envío de correo.
- El `EmailService` ahora centraliza toda la lógica de logging, registrando automáticamente la fecha, destinatario, asunto, estado (`Enviado` o `Fallido`), y mensajes de error detallados.
- Se implementó un nuevo `EmailLogService` y `EmailLogRepository` para gestionar estos registros.
- **Historial de Envíos en la Interfaz de Usuario:**
- Se añade un nuevo ícono de "Historial" (<span style="color: #607d8b;">📧</span>) junto a cada factura en la página de "Consulta de Facturas".
- Al hacer clic, se abre un modal que muestra una tabla detallada con todos los intentos de envío para esa factura, incluyendo el estado y el motivo del error (si lo hubo).
- Esto proporciona una trazabilidad completa y una herramienta de diagnóstico para el usuario final.
### 🔄 Refactorización y Mejoras
- **Mensajes de Éxito Dinámicos:**
- Se ha mejorado la retroalimentación al enviar una factura por PDF. El sistema ahora muestra un mensaje de éxito específico, como "El email... se ha enviado correctamente a suscriptor@email.com", en lugar de un mensaje técnico genérico.
- Se ajustó la cadena de llamadas (`Controller` -> `Service`) para que el email del destinatario esté disponible para la respuesta de la API.
- **Diseño Unificado de Emails:**
- Se ha rediseñado el template HTML para el "Aviso de Cuenta Mensual" para que coincida con la estética del email de "Envío de Factura PDF".
- Ambos correos ahora presentan un diseño profesional y consistente, con cabecera, logo y pie de página, reforzando la imagen de marca.
- **Manejo de Errores de Email Mejorado:**
- El `EmailService` ahora captura excepciones específicas de la librería `MailKit` (ej. `SmtpCommandException`).
- Esto permite registrar en el log errores mucho más precisos y útiles, como rechazos de destinatarios por parte del servidor (`User unknown`), fallos de autenticación, etc., que ahora son visibles en el `Tooltip` del historial.
2025-08-09 21:12:11 -03:00
|
|
|
const enviarFacturaPdfPorEmail = async (idFactura: number): Promise<{ message: string }> => {
|
|
|
|
|
const response = await apiClient.post<{ message: string }>(`${API_URL}/${idFactura}/enviar-factura-pdf`);
|
|
|
|
|
return response.data;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const getHistorialEnvios = async (idFactura: number): Promise<EmailLogDto[]> => {
|
|
|
|
|
const response = await apiClient.get<EmailLogDto[]>(`${API_URL}/${idFactura}/historial-envios`);
|
|
|
|
|
return response.data;
|
Feat: Implementa flujo completo de facturación y promociones
Este commit introduce la funcionalidad completa para la facturación mensual,
la gestión de promociones y la comunicación con el cliente en el módulo
de suscripciones.
Backend:
- Se añade el servicio de Facturación que calcula automáticamente los importes
mensuales basándose en las suscripciones activas, días de entrega y precios.
- Se implementa el servicio DebitoAutomaticoService, capaz de generar el
archivo de texto plano para "Pago Directo Galicia" y de procesar el
archivo de respuesta para la conciliación de pagos.
- Se desarrolla el ABM completo para Promociones (Servicio, Repositorio,
Controlador y DTOs), permitiendo la creación de descuentos por porcentaje
o monto fijo.
- Se implementa la lógica para asignar y desasignar promociones a suscripciones
específicas.
- Se añade un servicio de envío de email (EmailService) integrado con MailKit
y un endpoint para notificar facturas a los clientes.
- Se crea la lógica para registrar pagos manuales (efectivo, tarjeta, etc.)
y actualizar el estado de las facturas.
- Se añaden todos los permisos necesarios a la base de datos para
segmentar el acceso a las nuevas funcionalidades.
Frontend:
- Se crea la página de Facturación, que permite al usuario seleccionar un
período, generar la facturación, listar los resultados y generar el archivo
de débito para el banco.
- Se implementa la funcionalidad para subir y procesar el archivo de
respuesta del banco, actualizando la UI en consecuencia.
- Se añade la página completa para el ABM de Promociones.
- Se integra un modal en la gestión de suscripciones para asignar y
desasignar promociones a un cliente.
- Se añade la opción "Enviar Email" en el menú de acciones de las facturas,
conectada al nuevo endpoint del backend.
- Se completan y corrigen los componentes `PagoManualModal` y `FacturacionPage`
para incluir la lógica de registro de pagos y solucionar errores de TypeScript.
2025-08-01 12:53:17 -03:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
procesarArchivoRespuesta,
|
2025-08-08 09:48:15 -03:00
|
|
|
getResumenesDeCuentaPorPeriodo,
|
Feat: Implementa flujo completo de facturación y promociones
Este commit introduce la funcionalidad completa para la facturación mensual,
la gestión de promociones y la comunicación con el cliente en el módulo
de suscripciones.
Backend:
- Se añade el servicio de Facturación que calcula automáticamente los importes
mensuales basándose en las suscripciones activas, días de entrega y precios.
- Se implementa el servicio DebitoAutomaticoService, capaz de generar el
archivo de texto plano para "Pago Directo Galicia" y de procesar el
archivo de respuesta para la conciliación de pagos.
- Se desarrolla el ABM completo para Promociones (Servicio, Repositorio,
Controlador y DTOs), permitiendo la creación de descuentos por porcentaje
o monto fijo.
- Se implementa la lógica para asignar y desasignar promociones a suscripciones
específicas.
- Se añade un servicio de envío de email (EmailService) integrado con MailKit
y un endpoint para notificar facturas a los clientes.
- Se crea la lógica para registrar pagos manuales (efectivo, tarjeta, etc.)
y actualizar el estado de las facturas.
- Se añaden todos los permisos necesarios a la base de datos para
segmentar el acceso a las nuevas funcionalidades.
Frontend:
- Se crea la página de Facturación, que permite al usuario seleccionar un
período, generar la facturación, listar los resultados y generar el archivo
de débito para el banco.
- Se implementa la funcionalidad para subir y procesar el archivo de
respuesta del banco, actualizando la UI en consecuencia.
- Se añade la página completa para el ABM de Promociones.
- Se integra un modal en la gestión de suscripciones para asignar y
desasignar promociones a un cliente.
- Se añade la opción "Enviar Email" en el menú de acciones de las facturas,
conectada al nuevo endpoint del backend.
- Se completan y corrigen los componentes `PagoManualModal` y `FacturacionPage`
para incluir la lógica de registro de pagos y solucionar errores de TypeScript.
2025-08-01 12:53:17 -03:00
|
|
|
generarFacturacionMensual,
|
|
|
|
|
generarArchivoDebito,
|
|
|
|
|
registrarPagoManual,
|
2025-08-08 09:48:15 -03:00
|
|
|
actualizarNumeroFactura,
|
|
|
|
|
enviarAvisoCuentaPorEmail,
|
|
|
|
|
enviarFacturaPdfPorEmail,
|
Feat: Implementa auditoría de envíos de email y mejora la UX
Se introduce un sistema completo de logging para todas las comunicaciones por correo electrónico y se realizan mejoras significativas en la experiencia del usuario, tanto en la retroalimentación del sistema como en la estética de los emails enviados al cliente.
### ✨ Nuevas Características
- **Auditoría y Log de Envíos de Email:**
- Se ha creado una nueva tabla `com_EmailLogs` en la base de datos para registrar cada intento de envío de correo.
- El `EmailService` ahora centraliza toda la lógica de logging, registrando automáticamente la fecha, destinatario, asunto, estado (`Enviado` o `Fallido`), y mensajes de error detallados.
- Se implementó un nuevo `EmailLogService` y `EmailLogRepository` para gestionar estos registros.
- **Historial de Envíos en la Interfaz de Usuario:**
- Se añade un nuevo ícono de "Historial" (<span style="color: #607d8b;">📧</span>) junto a cada factura en la página de "Consulta de Facturas".
- Al hacer clic, se abre un modal que muestra una tabla detallada con todos los intentos de envío para esa factura, incluyendo el estado y el motivo del error (si lo hubo).
- Esto proporciona una trazabilidad completa y una herramienta de diagnóstico para el usuario final.
### 🔄 Refactorización y Mejoras
- **Mensajes de Éxito Dinámicos:**
- Se ha mejorado la retroalimentación al enviar una factura por PDF. El sistema ahora muestra un mensaje de éxito específico, como "El email... se ha enviado correctamente a suscriptor@email.com", en lugar de un mensaje técnico genérico.
- Se ajustó la cadena de llamadas (`Controller` -> `Service`) para que el email del destinatario esté disponible para la respuesta de la API.
- **Diseño Unificado de Emails:**
- Se ha rediseñado el template HTML para el "Aviso de Cuenta Mensual" para que coincida con la estética del email de "Envío de Factura PDF".
- Ambos correos ahora presentan un diseño profesional y consistente, con cabecera, logo y pie de página, reforzando la imagen de marca.
- **Manejo de Errores de Email Mejorado:**
- El `EmailService` ahora captura excepciones específicas de la librería `MailKit` (ej. `SmtpCommandException`).
- Esto permite registrar en el log errores mucho más precisos y útiles, como rechazos de destinatarios por parte del servidor (`User unknown`), fallos de autenticación, etc., que ahora son visibles en el `Tooltip` del historial.
2025-08-09 21:12:11 -03:00
|
|
|
getHistorialEnvios,
|
Feat: Implementa flujo completo de facturación y promociones
Este commit introduce la funcionalidad completa para la facturación mensual,
la gestión de promociones y la comunicación con el cliente en el módulo
de suscripciones.
Backend:
- Se añade el servicio de Facturación que calcula automáticamente los importes
mensuales basándose en las suscripciones activas, días de entrega y precios.
- Se implementa el servicio DebitoAutomaticoService, capaz de generar el
archivo de texto plano para "Pago Directo Galicia" y de procesar el
archivo de respuesta para la conciliación de pagos.
- Se desarrolla el ABM completo para Promociones (Servicio, Repositorio,
Controlador y DTOs), permitiendo la creación de descuentos por porcentaje
o monto fijo.
- Se implementa la lógica para asignar y desasignar promociones a suscripciones
específicas.
- Se añade un servicio de envío de email (EmailService) integrado con MailKit
y un endpoint para notificar facturas a los clientes.
- Se crea la lógica para registrar pagos manuales (efectivo, tarjeta, etc.)
y actualizar el estado de las facturas.
- Se añaden todos los permisos necesarios a la base de datos para
segmentar el acceso a las nuevas funcionalidades.
Frontend:
- Se crea la página de Facturación, que permite al usuario seleccionar un
período, generar la facturación, listar los resultados y generar el archivo
de débito para el banco.
- Se implementa la funcionalidad para subir y procesar el archivo de
respuesta del banco, actualizando la UI en consecuencia.
- Se añade la página completa para el ABM de Promociones.
- Se integra un modal en la gestión de suscripciones para asignar y
desasignar promociones a un cliente.
- Se añade la opción "Enviar Email" en el menú de acciones de las facturas,
conectada al nuevo endpoint del backend.
- Se completan y corrigen los componentes `PagoManualModal` y `FacturacionPage`
para incluir la lógica de registro de pagos y solucionar errores de TypeScript.
2025-08-01 12:53:17 -03:00
|
|
|
};
|