<?php

// Incluir los archivos necesarios para las operaciones de ventas y compras
require_once "../../controladores/ventas.controlador.php";
require_once "../../modelos/ventas.modelo.php";
require_once "../../controladores/compras.controlador.php"; // Se incluye el controlador de compras
require_once "../../modelos/compras.modelo.php"; // Se incluye el modelo de compras
require_once "../../controladores/clientes.controlador.php";
require_once "../../modelos/clientes.modelo.php";
require_once "../../controladores/usuarios.controlador.php";
require_once "../../modelos/usuarios.modelo.php";
require_once "../../controladores/proveedores.controlador.php";
require_once "../../modelos/proveedores.modelo.php";

session_start();
date_default_timezone_set('America/Santiago'); 

// Verificar el perfil del usuario
if($_SESSION["perfil"] == "Especial" || $_SESSION["perfil"] == "Vendedor"){
  echo '<script>
    window.location = "inicio";
  </script>';
  return;
}

if(isset($_GET['reporte'])){
    $reporte = $_GET['reporte'];
    
    // Verificar si las fechas están presentes
    if (isset($_GET['fechaInicial']) && isset($_GET['fechaFinal'])) {
        // No hacer eco de las fechas aquí, solo las usamos para la lógica
        $fechaInicial = $_GET['fechaInicial'];
        $fechaFinal = $_GET['fechaFinal'];
    } else {
        // Si no se reciben las fechas, asignar valores por defecto
        $fechaInicial = null;
        $fechaFinal = null;
    }

    // Verificar si el reporte solicitado es de ventas
    if($reporte == "compras_por_recibo") {
        // Lógica para generar el reporte de ventas
        $reporteVentas = new ControladorCompras();
        $reporteVentas->ctrDescargarReporteComprasPorRecibo($fechaInicial, $fechaFinal);

    // Verificar si el reporte solicitado es de compras
    } elseif($reporte == "productos_compras_agrupados") {
        // Lógica para generar el reporte de compras
        $reporteCompras = new ControladorCompras(); // Controlador de compras
        $reporteCompras->ctrDescargarReporteComprasAgrupadas($fechaInicial, $fechaFinal);
        
    } elseif ($reporte == "ventas_por_recibo") {
        $reporteVentasPorRecibo = new ControladorVentas();
        $reporteVentasPorRecibo->ctrDescargarReporteVentasPorRecibo($fechaInicial, $fechaFinal);


    } 
    
    elseif ($reporte == 'detalle-productos') {
        // Llamamos al controlador para el reporte de detalle de productos
        $reporteProductos = new ControladorVentas();
        $reporteProductos->ctrDescargarReporteProductosAgrupados($fechaInicial, $fechaFinal);
    }else {
        echo "Reporte no válido.";
    }
} else {
    echo "No se especificó el tipo de reporte.";
}
?>
