#!/bin/bash

guardarLog(){
    local log_message="$1"
    local log_file="/mnt/DB_FS/EPP/smtp_error.log"
    echo "$(date -R) - $log_message" >> "$log_file"
}


# Envía mail usando un template HTML construido internamente
funcMailTemplateNew() {
    local d_solicitante="$1"
    local f_vencimiento="$2"
    local n_cuota_plan="$3"
    local n_plan="$4"
    local total="$5"
    local email="$6"
    local d_mensaje="$7"
    local n_comprob="$8"
    local n_operacion="$9"
    local cc=""
    local date="$(date -R)"

    # Construir el template HTML con los datos
    local message="<html>
    <body>
        <div style=\"font-family: Arial, sans-serif; margin: 0px; padding: 0px\" data-ogsb=\"rgb(249, 249, 249)\">
            <table style=\"max-width: 800px; margin: auto\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" data-ogsb=\"white\">
                <tbody>
                    <tr>
                        <td>
                            <table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
                                <tbody>
                                    <tr>
                                        <td>
                                            <a data-auth=\"NotApplicable\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.vicentelopez.gov.ar\" data-linkindex=\"0\" title=\"https://www.vicentelopez.gov.ar\" data-ogsc=\"\" data-imagetype=\"External\" style=\"color: rgb(219, 151, 255) !important\">
                                                <img style=\"display: block; width: 100%; color: rgb(219, 151, 255) !important\" alt=\"Sitio web\" src=\"https://satbackend.vicentelopez.gov.ar/img/mail/web_header.jpg\" data-imagetype=\"External\" data-ogsc=\"\" />
                                            </a>
                                        </td>
                                        <td>
                                            <a data-auth=\"NotApplicable\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://wa.me/5491122873894\" data-linkindex=\"1\" title=\"https://wa.me/5491122873894\" data-ogsc=\"\" style=\"color: rgb(219, 151, 255) !important\">
                                                <img style=\"display: block; width: 100%; color: rgb(219, 151, 255) !important\" alt=\"SAT\" src=\"https://satbackend.vicentelopez.gov.ar/img/mail/vicente_header.jpg\" data-imagetype=\"External\" data-ogsc=\"\" />
                                            </a>
                                        </td>
                                        <td>
                                            <a data-auth=\"NotApplicable\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"tel:147\" data-linkindex=\"2\" title=\"tel:147\" data-ogsc=\"\" style=\"color: rgb(219, 151, 255) !important\">
                                                <img style=\"display: block; width: 100%; color: rgb(219, 151, 255) !important\" alt=\"147\" src=\"https://satbackend.vicentelopez.gov.ar/img/mail/147_header.jpg\" data-imagetype=\"External\" data-ogsc=\"\" />
                                            </a>
                                        </td>
                                        <td>
                                            <a data-auth=\"NotApplicable\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://www.vicentelopez.gov.ar\" data-linkindex=\"3\" title=\"https://www.vicentelopez.gov.ar\" data-ogsc=\"\" style=\"color: rgb(219, 151, 255) !important\">
                                                <img style=\"display: block; width: 100%; color: rgb(219, 151, 255) !important\" alt=\"Vivamos Vicente López\" src=\"https://satbackend.vicentelopez.gov.ar/img/mail/vivamos_vicente_lopez_header.jpg\" data-imagetype=\"External\" data-ogsc=\"\" />
                                            </a>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                    </tr>
                    <tr>
                        <td style=\"padding: 20px\">
                            <p style=\"margin-top: 0; margin-bottom: 0\">Hola <b>$d_solicitante</b>:</p>
                            <br />
                            <p style=\"margin-top: 0; margin-bottom: 0\">
                                Le informamos que el día <b>$f_vencimiento</b> no se realizó el débito automático correspondiente a la cuota N.º <b>$n_cuota_plan</b> de su plan de pago N.º <b>$n_plan</b>, con vencimiento <b>$f_vencimiento</b>, por un importe de <b>\$$total</b>, debido a <b>$d_mensaje</b>.
                            </p>
                            <br />
                            <p style=\"margin-top: 0; margin-bottom: 0\">Para evitar inconvenientes, le solicitamos por favor que nos escriba a la brevedad a <a href=\"mailto:cobranzas@vicentelopez.gov.ar\" style=\"color: #0066cc;\">cobranzas@vicentelopez.gov.ar</a></p>
                            <br />
                            <br />
                            <p style=\"margin-top: 0; margin-bottom: 0\">Saludos cordiales.<br /><br /><b>Equipo de Cobranzas</b><br /><b>Subsecretaría de Ingresos Públicos</b><br /><b>Municipalidad de Vicente López</b></p>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
                                <tbody>
                                    <tr>
                                        <td>
                                            <a data-auth=\"NotApplicable\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"tel:147\" data-linkindex=\"5\" title=\"tel:147\" data-ogsc=\"\" style=\"color: rgb(219, 151, 255) !important\">
                                                <img style=\"display: block; width: 100%; color: rgb(219, 151, 255) !important\" alt=\"Línea 147\" src=\"https://satbackend.vicentelopez.gov.ar/img/mail/147_footer.jpg\" data-imagetype=\"External\" data-ogsc=\"\" />
                                            </a>
                                        </td>
                                        <td>
                                            <a data-auth=\"NotApplicable\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://apps.apple.com/us/app/vl147/id6744701582\" data-linkindex=\"6\" title=\"https://apps.apple.com/us/app/vl147/id6744701582\" data-ogsc=\"\" style=\"color: rgb(219, 151, 255) !important\">
                                                <img style=\"display: block; width: 100%; color: rgb(219, 151, 255) !important\" alt=\"App Store\" src=\"https://satbackend.vicentelopez.gov.ar/img/mail/app_store_footer.jpg\" data-imagetype=\"External\" data-ogsc=\"\" />
                                            </a>
                                        </td>
                                        <td>
                                            <a data-auth=\"NotApplicable\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://play.google.com/store/apps/details?id=com.munidigital.vicentelopezciudadano\" data-linkindex=\"7\" title=\"https://play.google.com/store/apps/details?id=com.munidigital.vicentelopezciudadano\" data-ogsc=\"\" style=\"color: rgb(219, 151, 255) !important\">
                                                <img style=\"display: block; width: 100%; color: rgb(219, 151, 255) !important\" alt=\"Google Play\" src=\"https://satbackend.vicentelopez.gov.ar/img/mail/google_play_footer.jpg\" data-imagetype=\"External\" data-ogsc=\"\" />
                                            </a>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
    </body>
</html>"

    (
    sleep 1
    echo "EHLO $(hostname -f)"
    sleep 1
    echo "MAIL FROM:<no-reply@vicentelopez.gov.ar>"
    sleep 1
    echo "RCPT TO:<$email>"
    if [ ${#EMAIL_CC[@]} -gt 0 ]; then
        for email_cc in "${EMAIL_CC[@]}"; do
            sleep 1
            echo "RCPT TO:<$email_cc>"
        done
    fi
    sleep 1
    echo "DATA"
    sleep 1
    echo "From: no-reply@vicentelopez.gov.ar"
    echo "To: $email"
    if [ ${#EMAIL_CC[@]} -gt 0 ]; then
        cc=$(IFS=,; echo "${EMAIL_CC[*]}")
        echo "Cco: $cc"
    fi
    echo "Subject: Aviso de débito no concretado - Municipalidad de Vicente López"
    echo "Date: $date"
    echo "Content-Type: text/html; charset=UTF-8"
    echo ""
    echo "$message"
    echo "."
    sleep 1
    echo "QUIT"
    ) | telnet prd-mod-smtp02 25

    guardarLog "Mail enviado a $email - Plan: $n_plan - Cuota: $n_cuota_plan - Vencimiento: $f_vencimiento - Total: $total - Comprobante: $n_comprob - Operacion: $n_operacion"
}


funcMailInforme(){
    local date="$(date -R)"
    
    # Construir tabla HTML con los datos del array
    local tabla_html="<table border='1' cellpadding='10' cellspacing='0' style='border-collapse: collapse; width: 100%;'>"
    tabla_html+="<thead><tr style='background-color: #f2f2f2;'>"
    tabla_html+="<th>Plan</th><th>Comprob</th><th>Operacion</th><th>Cuota plan</th><th>Vencimiento</th><th>Mensaje</th><th>Email</th><th>Total</th>"
    tabla_html+="</tr></thead><tbody>"

    
    # Iterar sobre el array recibido
    for item in "${array_informe[@]}"; do
        json_data=$(echo "$item" | base64 --decode)

        n_plan=$(echo "$json_data" | jq -r '.n_plan')
        n_comprob=$(echo "$json_data" | jq -r '.n_comprob')
        n_operacion=$(echo "$json_data" | jq -r '.n_operacion')
        n_cuota_plan=$(echo "$json_data" | jq -r '.n_cuota_plan')
        f_vencimiento=$(echo "$json_data" | jq -r '.f_vencimiento')
        d_mensaje=$(echo "$json_data" | jq -r '.d_mensaje')
        email=$(echo "$json_data" | jq -r '.email')
        total=$(echo "$json_data" | jq -r '.total')

        tabla_html+="<tr>"
            tabla_html+="<td>$n_plan</td>"
            tabla_html+="<td>$n_comprob</td>"
            tabla_html+="<td>$n_operacion</td>"
            tabla_html+="<td>$n_cuota_plan</td>"
            tabla_html+="<td>$f_vencimiento</td>"
            tabla_html+="<td>$d_mensaje</td>"
            tabla_html+="<td>$email</td>"
            tabla_html+="<td>\$$total</td>"
        tabla_html+="</tr>"    
    done
    
    tabla_html+="</tbody></table>"
    
    # Construir mensaje HTML completo
    local message="<!DOCTYPE html><html><head><meta charset='UTF-8'></head><body>"
    message+="<h2>Informe de Avisos de Débito Automático Fallidos</h2>"
    message+="<p>Fecha: $(date '+%d/%m/%Y %H:%M:%S')</p>"
    message+="$tabla_html"
    message+="</body></html>"
    
    # Enviar email
    (
    sleep 1
    echo "EHLO $(hostname -f)"
    sleep 1
    echo "MAIL FROM:<informe-error@vicentelopez.gov.ar>"
    sleep 1
    echo "RCPT TO:<$EMAIL_INFORME_TO>"
    if [ ${#EMAIL_INFORME_CC[@]} -gt 0 ]; then
        for email_cc in "${EMAIL_INFORME_CC[@]}"; do
            sleep 1
            echo "RCPT TO:<$email_cc>"
        done
    fi
    sleep 1
    echo "DATA"
    sleep 1
    echo "From: informe-error@vicentelopez.gov.ar"
    echo "To: $EMAIL_INFORME_TO"
    if [ ${#EMAIL_INFORME_CC[@]} -gt 0 ]; then
        cc=$(IFS=,; echo "${EMAIL_INFORME_CC[*]}")
        echo "Cc: $cc"
    fi
    echo "Subject: Informe de Avisos de Débito - Municipalidad de Vicente López"
    echo "Date: $date"
    echo "Content-Type: text/html; charset=UTF-8"
    echo ""
    echo "$message"
    echo "."
    sleep 1
    echo "QUIT"
    ) | telnet prd-mod-smtp02 25
    
}

URL_AVISO_EMAIL_ERROR="http://prd-sip-web07.vicentelopez.gov.ar/api-epagos/Recurrencia/obtener_aviso_error.php"

EMAIL_CC=("ppc.edd@vicentelopez.gov.ar")
EMAIL_INFORME_TO="ppc.edd@vicentelopez.gov.ar"
EMAIL_INFORME_CC=("emanuel.mangani@vicentelopez.gov.ar" "florencia.viera@vicentelopez.gov.ar" "sebastian.fernandez@vicentelopez.gov.ar" "zoilymar.vallejo@vicentelopez.gov.ar" "rosana.koch@vicentelopez.gov.ar")


# consulta GET a $URL_AVISO_EMAIL_ERROR
response=$(curl -s "$URL_AVISO_EMAIL_ERROR")

# Extraer los dos arrays por separado
array_informe=($(echo "$response" | jq -r '.error_informe[] | @base64'))
array_contribuyente=($(echo "$response" | jq -r '.error_contribuyente[] | @base64'))

# Opcional: verificar que se cargaron los arrays

if [ ${#array_informe[@]} -gt 0 ]; then
    funcMailInforme
    guardarLog "Informe enviado - Total de registros procesados: ${#array_informe[@]}"
else
    guardarLog "No se envió informe - Array vacío"
fi

if [ ${#array_contribuyente[@]} -gt 0 ]; then
    for item in "${array_contribuyente[@]}"; do
        json_data=$(echo "$item" | base64 --decode)

        d_solicitante=$(echo "$json_data" | jq -r '.d_solicitante')
        f_vencimiento=$(echo "$json_data" | jq -r '.f_vencimiento')
        n_cuota_plan=$(echo "$json_data" | jq -r '.n_cuota_plan')
        n_plan=$(echo "$json_data" | jq -r '.n_plan')
        total=$(echo "$json_data" | jq -r '.total')
        email=$(echo "$json_data" | jq -r '.email')
        d_mensaje=$(echo "$json_data" | jq -r '.d_mensaje')
        n_comprob=$(echo "$json_data" | jq -r '.n_comprob')
        n_operacion=$(echo "$json_data" | jq -r '.n_operacion')


        funcMailTemplateNew "$d_solicitante" "$f_vencimiento" "$n_cuota_plan" "$n_plan" "$total" "$email" "$d_mensaje" "$n_comprob" "$n_operacion"
    done
else
    guardarLog "No se enviaron mails - Array vacío"
fi

