Update renovacion_service.go
This commit is contained in:
@@ -74,17 +74,39 @@ func EnviarCorreoPrueba(email string, p *models.PlantillaCorreo) error {
|
|||||||
return app.Http.Mail.Send(email, "[PRUEBA] "+p.Asunto, html)
|
return app.Http.Mail.Send(email, "[PRUEBA] "+p.Asunto, html)
|
||||||
}
|
}
|
||||||
|
|
||||||
// EnviarCorreoManual envía correo de aviso para un contrato específico
|
// EnviarCorreoManual envía correo de aviso para un contrato específico.
|
||||||
|
// Usa la primera regla activa para obtener la plantilla y la pasarela de pago;
|
||||||
|
// si no hay regla, usa la primera plantilla disponible con pasarela "bold".
|
||||||
func EnviarCorreoManual(contrato *models.Contrato) error {
|
func EnviarCorreoManual(contrato *models.Contrato) error {
|
||||||
// Usar la primera plantilla activa de tipo renovacion/vencimiento como fallback
|
// Intentar obtener plantilla y pasarela desde la primera regla activa
|
||||||
plantillas, err := models.GetAllPlantillasSelect()
|
var p *models.PlantillaCorreo
|
||||||
if err != nil || len(plantillas) == 0 {
|
gateway := "bold"
|
||||||
return fmt.Errorf("no hay plantillas de correo disponibles")
|
|
||||||
|
reglas, err := models.GetReglasActivas()
|
||||||
|
if err == nil && len(reglas) > 0 {
|
||||||
|
regla := reglas[0]
|
||||||
|
gateway = regla.PasarelaEnlace
|
||||||
|
p, err = models.GetPlantillaByID(regla.PlantillaID)
|
||||||
|
if err != nil {
|
||||||
|
p = nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
p, err := models.GetPlantillaByID(plantillas[0].ID)
|
|
||||||
if err != nil {
|
// Fallback: primera plantilla disponible
|
||||||
return err
|
if p == nil {
|
||||||
|
plantillas, err2 := models.GetAllPlantillasSelect()
|
||||||
|
if err2 != nil || len(plantillas) == 0 {
|
||||||
|
return fmt.Errorf("no hay plantillas de correo disponibles")
|
||||||
|
}
|
||||||
|
p, err = models.GetPlantillaByID(plantillas[0].ID)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generar o reutilizar el enlace de pago
|
||||||
|
enlacePago := ObtenerOCrearEnlacePago(contrato, gateway)
|
||||||
|
|
||||||
dias := int(contrato.FechaVencimiento.Sub(time.Now()).Hours() / 24)
|
dias := int(contrato.FechaVencimiento.Sub(time.Now()).Hours() / 24)
|
||||||
var items []ItemServicio
|
var items []ItemServicio
|
||||||
for _, s := range contrato.Servicios {
|
for _, s := range contrato.Servicios {
|
||||||
@@ -103,6 +125,7 @@ func EnviarCorreoManual(contrato *models.Contrato) error {
|
|||||||
DiasRestantes: dias,
|
DiasRestantes: dias,
|
||||||
Total: contrato.PrecioAcordado,
|
Total: contrato.PrecioAcordado,
|
||||||
Servicios: items,
|
Servicios: items,
|
||||||
|
EnlacePago: enlacePago,
|
||||||
}
|
}
|
||||||
html, err := RenderPlantilla(p, datos)
|
html, err := RenderPlantilla(p, datos)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user