<?php
session_start();
require_once '../includes/db.php';
require_once '../includes/factura_helper.php';

if (!isset($_SESSION['usuario_id']) || $_SESSION['rol'] !== 'admin') {
    header('Location: login.php');
    exit;
}

$db = new Database();
$pdo = $db->getPDO();

if (isset($_POST['cliente_id']) && isset($_POST['venta_id'])) {
    $clienteId = $_POST['cliente_id'];
    $ventaId = $_POST['venta_id'];
    $usuarioId = $_SESSION['usuario_id'];

    try {
        // Generar el JSON
        $jsonData = generarJsonFactura($pdo, $clienteId, $ventaId, $usuarioId);
        
        // Guardar en archivo
        $jsonString = json_encode([$jsonData], JSON_PRETTY_PRINT);
        $resultado = file_put_contents('../factura.txt', $jsonString);
        
        if ($resultado !== false) {
            $_SESSION['mensaje_exito'] = "Factura generada exitosamente";
            unset($_SESSION['numero_venta']); // Limpiar el número de venta de la sesión
            header('Location: facturar.php');
            exit;
        } else {
            throw new Exception("Error al guardar el archivo de factura");
        }
    } catch (Exception $e) {
        $_SESSION['mensaje_error'] = "Error: " . $e->getMessage();
        error_log("Error en generación de factura: " . $e->getMessage());
        header('Location: facturar.php');
        exit;
    }
} else {
    $_SESSION['mensaje_error'] = "Error: Faltan datos necesarios para generar la factura";
    header('Location: facturar.php');
    exit;
}