fix: marcar pago manual no toca estado ni fecha_vencimiento

MarcarContratoPagado siempre sobreescribía estado='activo' y renovaba
fecha_vencimiento, lo que causaba doble renovación si el admin ya había
ajustado el contrato manualmente. ConfirmarPagoManual solo limpia
pago_confirmado, fecha_pago y el enlace Bold, sin tocar nada más.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-09 20:13:40 -05:00
co-authored by Claude Sonnet 4.6
parent 0218b93bb4
commit b3b6f6705d
2 changed files with 18 additions and 1 deletions
+15
View File
@@ -336,6 +336,21 @@ func MarcarContratoPagado(contratoID uint) (bool, error) {
return result.RowsAffected > 0, result.Error
}
// ConfirmarPagoManual marca el pago como confirmado sin modificar estado ni fecha_vencimiento.
// Útil cuando el admin ya ajustó manualmente el contrato y solo necesita limpiar el enlace pendiente.
func ConfirmarPagoManual(contratoID uint) (bool, error) {
now := time.Now()
result := app.Http.Database.DB.Model(&Contrato{}).
Where("id = ? AND pago_confirmado = false", contratoID).
Updates(map[string]interface{}{
"pago_confirmado": true,
"fecha_pago": now,
"enlace_pago": "",
"enlace_pago_link_id": "",
})
return result.RowsAffected > 0, result.Error
}
// GetEstadoPago devuelve si el contrato tiene pago confirmado (para polling desde el frontend).
func GetEstadoPago(contratoID uint) (bool, *time.Time, error) {
var c Contrato