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

// Verificar si el usuario está logueado y es administrador
if (!isset($_SESSION['usuario_id']) || $_SESSION['rol'] !== 'admin') {
    header('Location: login.php');
    exit;
}

// Inicializar tabla si no existe
initFacturacionTable();

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

// Obtener configuración actual
$stmt = $pdo->prepare("SELECT color_principal, color_secundario, favicon FROM configuracion LIMIT 1");
$stmt->execute();
$config = $stmt->fetch(PDO::FETCH_ASSOC);

// Obtener datos de facturación electrónica
$stmt = $pdo->prepare("SELECT * FROM configuracion_facturacion LIMIT 1");
$stmt->execute();
$facturacion = $stmt->fetch(PDO::FETCH_ASSOC);

// Procesar el formulario
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $stmt = $pdo->prepare("
            UPDATE configuracion_facturacion SET 
            establecimiento = :establecimiento,
            punto = :punto,
            factura_numero = :factura_numero,
            tenantid = :tenantid,
            ruc_empresa = :ruc_empresa,
            api_key = :api_key,
            dominio = :dominio,
            nombre_empresa = :nombre_empresa,
            direccion_empresa = :direccion_empresa,
            tel_empresa = :tel_empresa,
            email_empresa = :email_empresa,
            codigo_departamento = :codigo_departamento,
            descripcion_dpto = :descripcion_dpto,
            codigo_distrito = :codigo_distrito,
            descripcion_distrito = :descripcion_distrito,
            codigo_ciudad = :codigo_ciudad,
            descripcion_ciudad = :descripcion_ciudad
            WHERE id = :id
        ");

        $stmt->execute([
            'establecimiento' => $_POST['establecimiento'],
            'punto' => $_POST['punto'],
            'factura_numero' => $_POST['factura_numero'],
            'tenantid' => $_POST['tenantid'],
            'ruc_empresa' => $_POST['ruc_empresa'],
            'api_key' => $_POST['api_key'],
            'dominio' => $_POST['dominio'],
            'nombre_empresa' => $_POST['nombre_empresa'],
            'direccion_empresa' => $_POST['direccion_empresa'],
            'tel_empresa' => $_POST['tel_empresa'],
            'email_empresa' => $_POST['email_empresa'],
            'codigo_departamento' => $_POST['codigo_departamento'],
            'descripcion_dpto' => $_POST['descripcion_dpto'],
            'codigo_distrito' => $_POST['codigo_distrito'],
            'descripcion_distrito' => $_POST['descripcion_distrito'],
            'codigo_ciudad' => $_POST['codigo_ciudad'],
            'descripcion_ciudad' => $_POST['descripcion_ciudad'],
            'id' => $facturacion['id']
        ]); // Corregido: Cerrar el array correctamente

        // Guardar mensaje en sesión
        $_SESSION['mensaje'] = "Configuración actualizada exitosamente";
        $_SESSION['tipo_mensaje'] = "success";
        
        // Redirigir después del POST exitoso
        header('Location: ' . $_SERVER['PHP_SELF']);
        exit;
    } catch (PDOException $e) {
        $_SESSION['mensaje'] = "Error al actualizar la configuración: " . $e->getMessage();
        $_SESSION['tipo_mensaje'] = "danger";
        
        // Redirigir incluso en caso de error
        header('Location: ' . $_SERVER['PHP_SELF']);
        exit;
    }
}

// Obtener mensaje de la sesión
if (isset($_SESSION['mensaje'])) {
    $mensaje = $_SESSION['mensaje'];
    $tipo_mensaje = $_SESSION['tipo_mensaje'];
    // Limpiar mensaje de la sesión
    unset($_SESSION['mensaje']);
    unset($_SESSION['tipo_mensaje']);
}

// Script para verificar y crear el campo dominio si no existe
try {
    // Verificar si la columna existe
    $checkColumn = "SHOW COLUMNS FROM configuracion_facturacion LIKE 'dominio'";
    $columnExists = $db->query($checkColumn)->fetch();

    if (!$columnExists) {
        // La columna no existe, la creamos
        $createColumn = "ALTER TABLE configuracion_facturacion ADD COLUMN dominio VARCHAR(255) AFTER api_key";
        $db->query($createColumn);
        
        // Log o mensaje de éxito
        error_log('Campo dominio creado exitosamente en la tabla configuracion_facturacion');
    }
} catch (PDOException $e) {
    // Log del error
    error_log('Error al verificar/crear campo dominio: ' . $e->getMessage());
}

//echo getThemeCSS();
require_once '../includes/header.php';
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <?php require_once '../includes/dark_mode.php'; ?>
    <meta name="color-scheme" content="light dark">
    <?php echo getDarkModeStyles(); ?>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Configuración de Facturación Electrónica</title>
    <link rel="shortcut icon" href="../uploads/config/<?php echo htmlspecialchars($config['favicon']); ?>">
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <style>
        :root {
            --color-primary: <?php echo $config['color_principal']; ?>;
            --color-secondary: <?php echo $config['color_secundario']; ?>;
        }
        .titulo-seccion {
            color: var(--color-primary);
            border-bottom: 2px solid var(--color-secondary);
            padding-bottom: 10px;
            margin-bottom: 20px;
        }
        .form-label {
            font-weight: 500;
        }
        .btn-primary {
            background-color: var(--color-primary);
            border-color: var(--color-primary);
        }
        .btn-primary:hover {
            background-color: var(--color-secondary);
            border-color: var(--color-secondary);
        }
    </style>
</head>
<body>
    <div class="container mt-5">
        <div class="row justify-content-center">
            <div class="col-md-10">
                <h1 class="titulo-seccion mb-4">
                    <img src="icons/receipt.svg" class="me-2" width="32" height="32" alt="">
                    Configuración de Facturación Electrónica
                </h1>

                <?php if (isset($mensaje)): ?>
                    <div class="alert alert-<?php echo $tipo_mensaje; ?> alert-dismissible fade show" role="alert">
                        <?php echo $mensaje; ?>
                        <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                    </div>
                <?php endif; ?>

                <form method="POST" class="card shadow-sm">
                    <div class="card-body">
                        <div class="row g-3">
                            <!-- Sección de Datos de Timbrado -->
                            <div class="col-12">
                                <h4 class="mb-3">Datos de Timbrado</h4>
                            </div>
                            <div class="col-md-4">
                                <label for="establecimiento" class="form-label">Establecimiento</label>
                                <input type="number" class="form-control" id="establecimiento" name="establecimiento" 
                                       value="<?php echo htmlspecialchars($facturacion['establecimiento'] ?? ''); ?>" 
                                       required min="0" max="999">
                            </div>
                            <div class="col-md-4">
                                <label for="punto" class="form-label">Punto</label>
                                <input type="number" class="form-control" id="punto" name="punto" 
                                       value="<?php echo htmlspecialchars($facturacion['punto'] ?? ''); ?>" 
                                       required min="0" max="999">
                            </div>
                            <div class="col-md-4">
                                <label for="factura_numero" class="form-label">Número de Factura</label>
                                <input type="number" class="form-control" id="factura_numero" name="factura_numero" 
                                       value="<?php echo htmlspecialchars($facturacion['factura_numero'] ?? ''); ?>" 
                                       required min="0" max="99999999">
                            </div>

                            <!-- Sección de Datos de la Empresa -->
                            <div class="col-12">
                                <h4 class="mb-3">Datos de la Empresa</h4>
                            </div>
                            <div class="col-md-6">
                                <label for="tenantid" class="form-label">Tenant ID</label>
                                <input type="text" class="form-control" id="tenantid" name="tenantid" 
                                       value="<?php echo htmlspecialchars($facturacion['tenantid'] ?? ''); ?>" 
                                       maxlength="150" required>
                            </div>
                            <div class="col-md-6">
                                <label for="ruc_empresa" class="form-label">RUC Empresa</label>
                                <input type="text" class="form-control" id="ruc_empresa" name="ruc_empresa" 
                                       value="<?php echo htmlspecialchars($facturacion['ruc_empresa'] ?? ''); ?>" 
                                       maxlength="20" required>
                            </div>
                            <div class="col-md-6">
                                <label for="nombre_empresa" class="form-label">Nombre de la Empresa</label>
                                <input type="text" class="form-control" id="nombre_empresa" name="nombre_empresa" 
                                       value="<?php echo htmlspecialchars($facturacion['nombre_empresa'] ?? ''); ?>" 
                                       maxlength="150" required>
                            </div>
                            <div class="col-md-6">
                                <label for="direccion_empresa" class="form-label">Dirección de la Empresa</label>
                                <input type="text" class="form-control" id="direccion_empresa" name="direccion_empresa" 
                                       value="<?php echo htmlspecialchars($facturacion['direccion_empresa'] ?? ''); ?>" 
                                       maxlength="200" required>
                            </div>
                            <div class="col-md-6">
                                <label for="tel_empresa" class="form-label">Teléfono</label>
                                <input type="tel" class="form-control" id="tel_empresa" name="tel_empresa" 
                                       value="<?php echo htmlspecialchars($facturacion['tel_empresa'] ?? ''); ?>" 
                                       maxlength="15" required>
                            </div>
                            <div class="col-md-6">
                                <label for="email_empresa" class="form-label">Email</label>
                                <input type="email" class="form-control" id="email_empresa" name="email_empresa" 
                                       value="<?php echo htmlspecialchars($facturacion['email_empresa'] ?? ''); ?>" 
                                       maxlength="100" required>
                            </div>
                            <div class="col-md-6">
                                <label for="api_key" class="form-label">API Key</label>
                                <input type="password" class="form-control" id="api_key" name="api_key" 
                                       value="<?php echo htmlspecialchars($facturacion['api_key'] ?? ''); ?>" 
                                       maxlength="255" required>
                            </div>
                            <div class="col-md-6">
                                <label for="dominio" class="form-label">Dominio</label>
                                <input type="text" class="form-control" id="dominio" name="dominio" 
                                       value="<?php echo htmlspecialchars($facturacion['dominio'] ?? ''); ?>" 
                                       maxlength="255" required>
                            </div>

                            <!-- Sección de Ubicación -->
                            <div class="col-12">
                                <h4 class="mb-3">Ubicación</h4>
                            </div>
                            <div class="col-md-6">
                                <label for="codigo_departamento" class="form-label">Código Departamento</label>
                                <input type="number" class="form-control" id="codigo_departamento" name="codigo_departamento" 
                                       value="<?php echo htmlspecialchars($facturacion['codigo_departamento'] ?? ''); ?>" 
                                       required min="0" max="999">
                            </div>
                            <div class="col-md-6">
                                <label for="descripcion_dpto" class="form-label">Departamento</label>
                                <input type="text" class="form-control" id="descripcion_dpto" name="descripcion_dpto" 
                                       value="<?php echo htmlspecialchars($facturacion['descripcion_dpto'] ?? ''); ?>" 
                                       maxlength="100" required>
                            </div>
                            <div class="col-md-6">
                                <label for="codigo_distrito" class="form-label">Código Distrito</label>
                                <input type="number" class="form-control" id="codigo_distrito" name="codigo_distrito" 
                                       value="<?php echo htmlspecialchars($facturacion['codigo_distrito'] ?? ''); ?>" 
                                       required min="0" max="999">
                            </div>
                            <div class="col-md-6">
                                <label for="descripcion_distrito" class="form-label">Distrito</label>
                                <input type="text" class="form-control" id="descripcion_distrito" name="descripcion_distrito" 
                                       value="<?php echo htmlspecialchars($facturacion['descripcion_distrito'] ?? ''); ?>" 
                                       maxlength="100" required>
                            </div>
                            <div class="col-md-6">
                                <label for="codigo_ciudad" class="form-label">Código Ciudad</label>
                                <input type="number" class="form-control" id="codigo_ciudad" name="codigo_ciudad" 
                                       value="<?php echo htmlspecialchars($facturacion['codigo_ciudad'] ?? ''); ?>" 
                                       required min="0" max="999999">
                            </div>
                            <div class="col-md-6">
                                <label for="descripcion_ciudad" class="form-label">Ciudad</label>
                                <input type="text" class="form-control" id="descripcion_ciudad" name="descripcion_ciudad" 
                                       value="<?php echo htmlspecialchars($facturacion['descripcion_ciudad'] ?? ''); ?>" 
                                       maxlength="100" required>
                            </div>
                        </div>
                    </div>

                    <div class="card-footer text-center">
                        <button type="submit" class="btn btn-primary">
                            <img src="icons/save.svg" class="me-2" width="16" height="16" alt="">
                            Guardar Configuración
                        </button>
                        <a href="configuracion.php" class="btn btn-secondary">
                            <img src="icons/arrow-left.svg" class="me-2" width="16" height="16" alt="">
                            Volver
                        </a>
                    </div>
                </form>
            </div>
        </div>
    </div>

    <script src="js/bootstrap.bundle.min.js"></script>
</body>
</html>