
var tabla;
function init(){


}

const chart = {
    getStockProducts: function () {
        const chartContainer = document.getElementById("graph-stock-products");
        if (!chartContainer) {
            //console.warn("El elemento #graph-stock-products no está en la página. Se omite la carga del gráfico.");
            return; // No hacer nada si el elemento no existe
        }
        // Realizando la solicitud AJAX
        $.post("../ajax/contrato.php?op=grafico_contrato", function (response, status) {
            if (status === "success") {
                // Convertimos la respuesta en un objeto JSON
                const parsedResponse = JSON.parse(response);
    
                // Configuración del gráfico con Highcharts
                Highcharts.chart('graph-stock-products', {
                    chart: {
                        type: 'pie',
                        options3d: {
                            enabled: true,
                            alpha: 45
                        }
                    },
                    exporting: {
                        enabled: false
                    },
                    title: {
                        text: 'Cantidad por Tipo Contrato'
                    },
                    accessibility: {
                        point: {
                            valueSuffix: '%'
                        }
                    },
                    tooltip: {
                        pointFormat: 'Cantidades: <b>{point.y:.0f} Unidades</b>'
                    },
                    plotOptions: {
                        pie: {
                            allowPointSelect: true,
                            cursor: 'pointer',
                            depth: 35,
                            dataLabels: {
                                enabled: true,
                                format: '<b>{point.name}</b>: {point.percentage:.1f} %'
                            }
                        }
                    },
                    series: [{
                        name: 'Stock de Productos',
                        data: parsedResponse.data // Usamos los datos del servidor
                    }]
                });
            } else {
                console.error("Error en la solicitud AJAX:", status);
            }
        });
    },

    getPurchaseVSSale: function () {
        const chartContainer = document.getElementById("graph-purchase-vs-sale");
        if (!chartContainer) {
           // console.warn("El elemento #graph-purchase-vs-sale no está en la página. Se omite la carga del gráfico.");
            return; // No hacer nada si el elemento no existe
        }
        // Realizando la solicitud AJAX para obtener los datos
        $.post("../ajax/ingreso.php?op=grafico_venta", function (response, status) {
                if (status === "success") {
                    // Parseamos la respuesta JSON que contiene las series de datos
                    const data = JSON.parse(response);

                    // Creamos las series dinámicamente con Ingresos y Egresos
                    const series = [
                        { name: 'Ingresos', data: data.ventas },
                        { name: 'Egresos', data: data.egresos }
                    ];

                    // Configuración del gráfico con Highcharts
                    Highcharts.chart('graph-purchase-vs-sale', {
                        chart: {
                            type: 'column'
                        },
                        title: {
                            text: ''
                        },
                        xAxis: {
                            categories: [
                                'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
                                'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'
                            ],
                            crosshair: true
                        },
                        yAxis: {
                            min: 0,
                            title: {
                                text: 'Valores S/'
                            }
                        },
                        tooltip: {
                            formatter: function () {
                                return `<b>${this.series.name}</b>: S/ ${this.y.toLocaleString("es-PE", {
                                    minimumFractionDigits: 2,
                                    maximumFractionDigits: 2
                                })}`;
                            }
                        },
                        plotOptions: {
                            column: {
                                pointPadding: 0.2,
                                borderWidth: 0
                            }
                        },
                        series: series
                    });
                } else {
                    console.error("Error en la solicitud AJAX:", status);
                }
        });
    },

    getPurchaseVSSale_top: function () {
                const ctxx = document.getElementById('topProductosChart');
                if (!ctxx) {
                    console.warn("El elemento #topProductosChart no está en la página. Se omite la carga del gráfico.");
                    return;
                }
            
                $.post("../ajax/pabellon.php?op=grafico_top", function (response, status) {
            if (status === "success") {
                const resultado = JSON.parse(response);
                const data = resultado.datos;

                const meses = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
                            'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];

                Highcharts.chart('topProductosChart', {
                    chart: {
                        type: 'column' // Cambia de 'bar' a 'column' si prefieres vertical
                    },
                    title: {
                        text: 'Cantidad de Nichos Vendidos por Mes'
                    },
                    xAxis: {
                        categories: meses,
                        title: {
                            text: 'Meses'
                        }
                    },
                    yAxis: {
                        min: 0,
                        title: {
                            text: 'Cantidad de Nichos Vendidos'
                        }
                    },
                    tooltip: {
                        pointFormat: 'Total: <b>{point.y} nichos</b>'
                    },
                    plotOptions: {
                        column: {
                            dataLabels: {
                                enabled: true
                            }
                        }
                    },
                    series: [{
                        name: 'Nichos Vendidos',
                        data: data
                    }]
                });

            } else {
                console.error("Error en la solicitud AJAX:", status);
            }
        });
    },


      getStockNichos: function () {
            const ctxx = document.getElementById('topNichoChart');
            if (!ctxx) {
                console.warn("El elemento #topNichoChart no está en la página. Se omite la carga del gráfico.");
                return;
            }
        
            $.post("../ajax/pabellon.php?op=grafico_nicho", function (response, status) {
                if (status === "success") {
                    const resultado = JSON.parse(response);
                    const datos = resultado.data;

                    // Extraer nombres y cantidades
                    const categories = datos.map(item => item.name);
                    const valores = datos.map(item => item.y);

                    const coloresPersonalizados = ['#28a745', '#434348', '#dc3545']; // Verde, Amarillo, Rojo

                    Highcharts.chart('topNichoChart', {
                        chart: {
                            type: 'column' // Cambia de 'bar' a 'column' si prefieres vertical
                        },
                        title: {
                            text: 'Cantidad de Nichos Actualmente'
                        },
                        xAxis: {
                            categories: categories,
                            title: {
                                text: 'Estado Nicho'
                            }
                        },
                        yAxis: {
                            min: 0,
                            title: {
                                text: 'Cantidad de Nichos'
                            }
                        },
                        tooltip: {
                            pointFormat: 'Total: <b>{point.y} nichos</b>'
                        },
                        plotOptions: {
                            column: {
                                dataLabels: {
                                    enabled: true
                                }
                            }
                        },
                        series: [{
                            name: 'Stock Nichos',
                            data: datos.map((item, index) => ({
                            name: item.name,
                            y: item.y,
                            color: coloresPersonalizados[index] || '#007bff' // fallback por si faltan colores
                            }))
                        }]
                    });

                } else {
                    console.error("Error en la solicitud AJAX:", status);
                }
             });
         }


}

// Ejecutar gráficos al cargar la página
document.addEventListener('DOMContentLoaded', function () {
    chart.getStockProducts();
    chart.getStockNichos();
    chart.getPurchaseVSSale();
    chart.getPurchaseVSSale_top();
    
});


   

  
  init();