<?php
// Confirmar sesión
session_start();
if (!isset($_SESSION['loggedin'])) {
    header('Location: index.php');
    exit;
}

include_once('conexion.php');

// Inicializar variables
$fecha_inicial = isset($_POST['fecha_inicial']) ? $_POST['fecha_inicial'] : date('Y-m-01');
$fecha_final = isset($_POST['fecha_final']) ? $_POST['fecha_final'] : date('Y-m-d');

// Consultar datos de producción
$sql = "SELECT DATE_FORMAT(fecprd, '%Y-%m') AS mes, SUM(numcns) AS total_conos
        FROM prdhvo
        WHERE fecprd BETWEEN '$fecha_inicial' AND '$fecha_final'
        GROUP BY mes
        ORDER BY mes";
$resultado = mysqli_query($conexion, $sql);

// Preparar datos para la gráfica
$data_labels = array();
$data_values = array();

while ($fila = mysqli_fetch_assoc($resultado)) {
    $data_labels[] = $fila['mes'];
    $data_values[] = $fila['total_conos'];
}

mysqli_free_result($resultado);
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Gráfica de Producción</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels"></script>
    <style>
        .container {
            width: 80%;
            margin: 0 auto;
            text-align: center;
        }
        /* Estilo para el menú */
        .navtop {
            background-color: #003366; /* Azul Rey */
            padding: 10px 0;
            text-align: left;
            color: white;
            display: flex;
            justify-content: flex-start; /* Alinea los elementos a la izquierda */
            padding-left: 20px; /* Asegura un buen espacio en el lado izquierdo */
        }
        .navtop a {
            color: white;
            margin: 0 15px;
            text-decoration: none;
            font-weight: bold;
        }
        .navtop a:hover {
            color: #bbb;
        }
        /* Estilo responsivo para el canvas */
        canvas {
            width: 100% !important;
            height: 400px !important;  /* Ajuste de altura */
            max-width: 100%;
        }
    </style>
</head>
<body>
    <!-- Menú de navegación -->
    <div class="navtop">
        <a href="produccion.php">Regresar</a>
        <a href="inicio.php">Cerrar</a>
    </div>

    <div class="container">
        <h1>Gráfica de Producción</h1>

        <!-- Formulario para selección de fechas -->
        <form method="post" action="">
            <label for="fecha_inicial"><strong>Fecha Inicial:</strong></label>
            <input type="date" id="fecha_inicial" name="fecha_inicial" value="<?php echo $fecha_inicial; ?>" required>
            
            <label for="fecha_final"><strong>Fecha Final:</strong></label>
            <input type="date" id="fecha_final" name="fecha_final" value="<?php echo $fecha_final; ?>" required>
            
            <button type="submit" style="padding: 10px 20px; margin-left: 10px;">Generar Gráfica</button>
        </form>
        <br>

        <!-- Contenedor de la gráfica -->
        <canvas id="graficaProduccion"></canvas>
    </div>

    <script>
        // Verificar los datos antes de crear la gráfica
        const labels = <?php echo json_encode($data_labels); ?>;
        const values = <?php echo json_encode($data_values); ?>;
        
        console.log('Labels:', labels);
        console.log('Values:', values);

        // Comprobar si hay datos para graficar
        if (labels.length > 0 && values.length > 0) {
            const ctx = document.getElementById('graficaProduccion').getContext('2d');
            const data = {
                labels: labels,
                datasets: [{
                    label: 'Producción de conos por mes',
                    data: values,
                    backgroundColor: 'rgba(75, 192, 192, 0.6)',
                    borderColor: 'rgba(75, 192, 192, 1)',
                    borderWidth: 1
                }]
            };

            const config = {
                type: 'bar',
                data: data,
                options: {
                    responsive: true,
                    plugins: {
                        legend: {
                            display: false
                        },
                        tooltip: {
                            callbacks: {
                                label: function(tooltipItem) {
                                    return tooltipItem.raw + ' conos';
                                }
                            }
                        },
                        datalabels: {
                            anchor: 'end',
                            align: 'start',
                            formatter: (value) => value + ' conos', // Mostrar el valor sobre las barras
                            color: 'black', // Color de los números sobre las barras
                            font: {
                                weight: 'bold',
                                size: 14
                            }
                        }
                    },
                    scales: {
                        y: {
                            beginAtZero: true,
                            title: {
                                display: true,
                                text: 'Número de conos'
                            }
                        },
                        x: {
                            title: {
                                display: true,
                                text: 'Mes'
                            }
                        }
                    }
                },
                plugins: [ChartDataLabels]
            };

            // Crear la gráfica
            const graficaProduccion = new Chart(ctx, config);
        } else {
            // Si no hay datos, mostrar un mensaje
            alert('No hay datos para mostrar en la gráfica');
        }
    </script>
</body>
</html>
