<?php
// Función para escribir datos en un archivo CSV
function escribirCSV($nombre, $rut, $telefono, $email, $direccion, $monto, $codigo_descuento, $metodo_pago) {
    $archivo = 'datos_formulario.csv';
    $datos = array($nombre, $rut, $telefono, $email, $direccion, $monto, $codigo_descuento, $metodo_pago);
    $manejador = fopen($archivo, 'a');
    fputcsv($manejador, $datos);
    fclose($manejador);
}

// Función para obtener el número de pedidos
function obtenerNumeroPedidos() {
    $archivo_contador = 'contador_pedidos.txt';
    if (file_exists($archivo_contador)) {
        $contador = intval(file_get_contents($archivo_contador));
    } else {
        $contador = 0;
    }
    return $contador;
}

// Función para incrementar el contador de pedidos
function incrementarContadorPedidos() {
    $archivo_contador = 'contador_pedidos.txt';
    $contador = obtenerNumeroPedidos() + 1;
    if (!file_exists('contador')) {
        mkdir('contador', 0777, true); // Crear la carpeta si no existe
    }
    file_put_contents($archivo_contador, $contador);
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $nombre = utf8_decode($_POST['nombre']);
    $email = $_POST['email'];
    $direccion = $_POST['direccion'];
    $rut = $_POST['rut'];
    $telefono = $_POST['telefono'];
    $tieneDescuento = $_POST['tiene_descuento'];
    $codigo_descuento = isset($_POST['codigo_descuento']) ? $_POST['codigo_descuento'] : '';

    // Dirección de correo fija como remitente
    $correo_remitente = "tienda@mauroquintana.cl";
    $nombre_remitente = "CEM Mauro Quintana";
    
    // Dirección de correo fija como replicar
    $correo_responder = "admision@mauroquintana.cl";
    $nombre_responder = "Admisión CEM";
    
    // Dirección de correo a la que se enviarán los datos
    $destinatario = "admision@mauroquintana.cl";

    // Asunto del correo
    $asunto = "Nuevo pago recibido";

    // Determinar el monto y método de pago
    if ($tieneDescuento === 'si') {
        $monto = 57000;
        $mensaje_descuento = "Código de descuento: " . $codigo_descuento . "\n";
    } else {
        $monto = 60000;
        $mensaje_descuento = "";
    }

    if (isset($_POST['btn_transferencia_bancaria'])) {
        $metodo_pago = "Transferencia Bancaria";
    } elseif (isset($_POST['btn_webpay'])) {
        $metodo_pago = "WebPay";
    }

    // Cuerpo del correo
    $mensaje = "Se ha recibido un nuevo pago:\n\n";
    $mensaje .= "Nombre: " . $nombre . "\n";
    $mensaje .= "Correo electrónico: " . $email . "\n";
    $mensaje .= "Dirección: " . $direccion . "\n";
    $mensaje .= "RUT: " . $rut . "\n";
    $mensaje .= "Teléfono: " . $telefono . "\n";
    $mensaje .= "Monto: $ " . number_format($monto, 0, ',', '.') . "\n";
    $mensaje .= $mensaje_descuento;
    $mensaje .= "Método de pago: " . $metodo_pago . "\n";

    // Cabeceras adicionales
    $headers = "From: " . $nombre_remitente . " <" . $correo_remitente . ">\r\n";
    $headers .= "Reply-To: " . $nombre_responder . " <" . $correo_responder . ">\r\n";
    $headers .= "Content-Type: text/plain; charset=utf-8\r\n";
    $headers .= "MIME-Version: 1.0\r\n";

    // Enviar el correo
    mail($destinatario, $asunto, $mensaje, $headers);

    // Escribir datos en el archivo CSV
    escribirCSV($nombre, $rut, $telefono, $email, $direccion, $monto, $codigo_descuento, $metodo_pago);

    // Incrementar el contador de pedidos
    incrementarContadorPedidos();

    // Redirigir según el método de pago y el descuento
    if ($metodo_pago === "Transferencia Bancaria") {
        if ($tieneDescuento === 'si') {
            header("Location: https://pagos.mauroquintana.cl/60x60CodTB");
        } else {
            header("Location: https://pagos.mauroquintana.cl/60x60TB");
        }
    } elseif ($metodo_pago === "WebPay") {
        if ($tieneDescuento === 'si') {
            header("Location: https://pagos.mauroquintana.cl/60x60Cod");
        } else {
            header("Location: https://pagos.mauroquintana.cl/60x60Invierno");
        }
    }
    exit;
}

// Obtener el número de pedidos
$numero_pedidos = obtenerNumeroPedidos();
?>
