<?php
if (session_status() === PHP_SESSION_NONE) {
    ini_set('session.cookie_lifetime', 0);
    session_start();
}

// Enforce login gate for SufarmaERP
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
    $scriptName = $_SERVER['SCRIPT_NAME'];
    $sufarmaErpPos = strpos($scriptName, '/SufarmaERP/');
    $basePath = ($sufarmaErpPos !== false) ? substr($scriptName, 0, $sufarmaErpPos + 12) : '/SufarmaERP/';
    
    header('Location: ' . $basePath . 'login.php');
    exit;
}

require_once __DIR__ . '/../config/database.php';
require_once __DIR__ . '/audit.php';

/**
 * Renderiza la cabecera y el menú lateral común
 * @param string $title Título de la página
 * @param string $activeTab Identificador de la pestaña activa
 */
function renderHeader($title, $activeTab = '', $extraHead = '') {
    global $assetVersion;
    $pdo = getDBConnection();
    $sucursal_id = (int)($_GET['sucursal_id'] ?? $_COOKIE['sucursal_id'] ?? 0);
    
    // Calcular base href
    $scriptName = $_SERVER['SCRIPT_NAME'];
    $sufarmaErpPos = strpos($scriptName, '/SufarmaERP/');
    if ($sufarmaErpPos !== false) {
        $baseHref = substr($scriptName, 0, $sufarmaErpPos + 12);
    } else {
        $modulesPos = strpos($scriptName, '/modules/');
        if ($modulesPos !== false) {
            $baseHref = substr($scriptName, 0, $modulesPos + 1);
        } else {
            $baseHref = './';
        }
    }
    
    // Obtener nombre de la sucursal activa
    try {
        $stmtBranch = $pdo->prepare("SELECT nombre FROM sucursales WHERE id = ?");
        $stmtBranch->execute([$sucursal_id]);
        $branch = $stmtBranch->fetch();
        $branchName = $branch ? $branch['nombre'] : 'Desconocida';
    } catch (Exception $e) {
        $branchName = 'Error de BD';
    }
    
    // Obtener todas las sucursales para el selector global
    try {
        $allBranches = $pdo->query("SELECT id, nombre FROM sucursales ORDER BY id")->fetchAll();
    } catch (Exception $e) {
        $allBranches = [['id' => $sucursal_id, 'nombre' => $branchName]];
    }
    
    // Definición del menú de navegación (agrupado por secciones)
    $menuSections = [
        'General' => [
            'dashboard' => ['label' => 'Dashboard', 'url' => 'modules/general/dashboard.php', 'icon' => '<i class="fas fa-chart-pie"></i>']
        ],
        'Inventario' => [
            'gestion_productos' => ['label' => 'Gestión Productos', 'url' => '../Gestionproductos/index.html', 'icon' => '<i class="fas fa-boxes-packing"></i>'],
            'kardex' => ['label' => 'Kardex', 'url' => 'modules/inventario/kardex.php', 'icon' => '<i class="fas fa-arrow-trend-up"></i>'],
            'alertas_inventario' => ['label' => 'Alertas', 'url' => 'modules/inventario/alertas_inventario.php', 'icon' => '<i class="fas fa-bell"></i>'],
            'ajustes_inventario' => ['label' => 'Ajustes', 'url' => 'modules/inventario/ajustes_inventario.php', 'icon' => '<i class="fas fa-sliders"></i>'],
            'inventario_inicial' => ['label' => 'Inventario Inicial', 'url' => 'modules/inventario/inventario_inicial.php', 'icon' => '<i class="fas fa-clipboard-list"></i>'],
            'inventario_tiempo_real' => ['label' => 'Inventario Tiempo Real', 'url' => 'modules/inventario/inventario_tiempo_real.php', 'icon' => '<i class="fas fa-clock"></i>'],
            'cierre_caja' => ['label' => 'Cierre de Caja', 'url' => '../IsolibrosADMIN/index.html', 'icon' => '<i class="fas fa-cash-register"></i>'],
            'sincronizar_facturas' => ['label' => 'Sincronizar facturas', 'url' => '../sincfacturapro/index.html', 'icon' => '<i class="fas fa-sync-alt"></i>'],
        ],
        'Compras' => [
            // 'ordenes_compra' => ['label' => 'Órdenes Compra', 'url' => 'modules/compras/ordenes_compra.php', 'icon' => '<i class="fas fa-file-invoice"></i>'],
            'compras' => ['label' => 'Compras', 'url' => 'modules/compras/compras.php', 'icon' => '<i class="fas fa-cart-shopping"></i>'],
            'proveedores' => ['label' => 'Proveedores', 'url' => 'modules/compras/proveedores.php', 'icon' => '<i class="fas fa-truck-field"></i>'],
            // 'precios' => ['label' => 'Precios', 'url' => 'modules/compras/precios.php', 'icon' => '<i class="fas fa-dollar-sign"></i>'],
            'promociones' => ['label' => 'Promociones', 'url' => 'modules/compras/promociones.php', 'icon' => '<i class="fas fa-tag"></i>'],
        ],
        'Ventas' => [
            'pedidos' => ['label' => 'Pedidos', 'url' => 'modules/ventas/pedidos.php', 'icon' => '<i class="fas fa-cart-plus"></i>'],
            'facturas_sat' => ['label' => 'Facturas SAT', 'url' => 'modules/ventas/facturas_sat.php', 'icon' => '<i class="fas fa-file-invoice-dollar"></i>'],
        ],
        'Finanzas' => [
            'caja_chica' => ['label' => 'Reporte Caja Chica', 'url' => 'modules/finanzas/caja_chica.php', 'icon' => '<i class="fas fa-wallet"></i>'],
            'cuentas_pagar' => ['label' => 'Ctas. por Pagar', 'url' => 'modules/finanzas/cuentas_pagar.php', 'icon' => '<i class="fas fa-hand-holding-dollar"></i>'],
            'gastos_operativos' => ['label' => 'Gastos Operativos', 'url' => 'modules/finanzas/gastos_operativos.php', 'icon' => '<i class="fas fa-chart-line"></i>'],
            'contabilidad' => ['label' => 'Contabilidad', 'url' => 'modules/finanzas/contabilidad.php', 'icon' => '<i class="fas fa-calculator"></i>'],
        ],
        'Operaciones' => [
            'distribucion' => ['label' => 'Distribución', 'url' => 'modules/operaciones/distribucion.php', 'icon' => '<i class="fas fa-truck-fast"></i>'],
            'usuarios_sucursales' => ['label' => 'Usuarios / Sucursales', 'url' => 'modules/operaciones/usuarios_sucursales.php', 'icon' => '<i class="fas fa-users-gear"></i>'],
            'prescripcion' => ['label' => 'Prescripción', 'url' => 'modules/operaciones/prescripcion.php', 'icon' => '<i class="fas fa-prescription"></i>'],
            'reportes' => ['label' => 'Reportes', 'url' => 'modules/operaciones/reportes.php', 'icon' => '<i class="fas fa-chart-column"></i>'],
        ],
        'Sistema' => [
            'configuracion' => ['label' => 'Configuración', 'url' => 'modules/sistema/configuracion.php', 'icon' => '<i class="fas fa-gear"></i>'],
            'backup' => ['label' => 'Respaldos BD', 'url' => 'modules/sistema/backup.php', 'icon' => '<i class="fas fa-database"></i>'],
            'bi' => ['label' => 'Inteligencia Negocios', 'url' => 'modules/sistema/bi.php', 'icon' => '<i class="fas fa-brain"></i>'],
            'auditoria' => ['label' => 'Auditoría', 'url' => 'modules/sistema/auditoria.php', 'icon' => '<i class="fas fa-shield-halved"></i>'],
            'logout' => ['label' => 'Cerrar Sesión', 'url' => 'logout.php', 'icon' => '<i class="fas fa-sign-out-alt"></i>'],
        ],
    ];
    ?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <base href="<?php echo htmlspecialchars($baseHref); ?>">
    <title>Sufarma ERP - <?php echo htmlspecialchars($title); ?></title>
    <link rel="stylesheet" href="css/style.css?v=<?= $assetVersion ?>">
    <link rel="stylesheet" href="assets/css/sweetalert2.min.css?v=<?= $assetVersion ?>">
    <link rel="stylesheet" href="assets/css/fonts.css">
    <link rel="stylesheet" href="assets/css/fontawesome.min.css">
    <script src="assets/js/tailwind.js"></script>
    <script>tailwind.config={corePlugins:{preflight:false}}</script>
    <script src="assets/js/sweetalert2.min.js"></script>
    <?php if (isset($extraHead)) { echo $extraHead; } ?>
</head>
<body>
    <div class="app-container">
        <!-- Sidebar -->
        <aside class="sidebar">
            <a href="modules/general/dashboard.php" class="logo">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
                    <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
                    <polyline points="9 22 9 12 15 12 15 22"></polyline>
                </svg>
                Sufarma ERP
            </a>
            
            <nav class="nav-menu">
                <?php foreach ($menuSections as $sectionName => $items): ?>
                    <div class="nav-section">
                        <div class="nav-section-title"><?php echo htmlspecialchars($sectionName); ?></div>
                        <?php foreach ($items as $key => $item): ?>
                            <?php $isActive = ($activeTab === $key) ? 'active' : ''; ?>
                            <div class="nav-item">
                                <a href="<?php echo $item['url']; ?>" class="nav-link <?php echo $isActive; ?>">
                                    <?php echo $item['icon']; ?>
                                    <?php echo htmlspecialchars($item['label']); ?>
                                </a>
                            </div>
                        <?php endforeach; ?>
                    </div>
                <?php endforeach; ?>
            </nav>
            
            <div class="sidebar-footer" style="flex-shrink:0; margin-top: auto; padding-top: 0.5rem; border-top: 1px solid rgba(255,255,255,0.08);">
                <div style="font-size: 0.65rem; color: #64748b; margin-bottom: 0.25rem;">Filtrar por Sucursal</div>
                <select id="globalSucursalSelect" style="width:100%; padding:0.35rem 0.5rem; border-radius:0.5rem; border:1px solid var(--border-color); background:var(--card-bg); color:var(--text-primary); font-size:0.75rem; font-weight:600; cursor:pointer;" onchange="cambiarSucursal(this.value)">
                    <option value="0">🌐 Todas las sucursales</option>
                    <?php foreach ($allBranches as $b): ?>
                        <option value="<?= (int)$b['id'] ?>" <?= $sucursal_id == $b['id'] ? 'selected' : '' ?>>
                            <?= htmlspecialchars(preg_replace('/^\([^)]*\)\s*/', '', $b['nombre'])) ?>
                        </option>
                    <?php endforeach; ?>
                </select>
            </div>
            <script>
            // Global branch selector helper
            (function() {
                try {
                    var saved = localStorage.getItem('sucursal_id');
                    var sel = document.getElementById('globalSucursalSelect');
                    if (saved !== null && sel) {
                        sel.value = saved;
                    }
                } catch(e) {}
            })();

            function getSucursalId() {
                try {
                    var v = localStorage.getItem('sucursal_id');
                    if (v !== null && v !== '0') return parseInt(v);
                } catch(e) {}
                var sel = document.getElementById('globalSucursalSelect');
                return sel ? parseInt(sel.value) : 0;
            }

            function sucursalFilter() {
                var id = getSucursalId();
                return id ? '&sucursal_id=' + id : '';
            }

            function cambiarSucursal(val) {
                try {
                    localStorage.setItem('sucursal_id', val);
                    location.reload();
                } catch(e) {}
            }

            function syncSucursalSelect(selectId) {
                try {
                    var gid = getSucursalId();
                    if (gid) {
                        var sel = document.getElementById(selectId);
                        if (sel && sel.querySelector('option[value="'+gid+'"]')) {
                            sel.value = gid;
                            return true;
                        }
                    }
                } catch(e) {}
                return false;
            }
            </script>
        </aside>

        <!-- Main Content Area -->
        <main class="main-content">
    <?php
}

/**
 * Renderiza el pie de página común
 */
function renderFooter() {
    global $assetVersion;
    ?>
        </main>
    </div>
</body>
</html>
    <?php
}
