<?php
// 1. BLINDAJE DE SALIDA - Nada puede salir antes del Excel
ob_start(); 
error_reporting(0); // Apagamos errores temporalmente para que no ensucien el archivo

require_once ("config/db.php");
require_once ("config/conexion.php");

// 2. CARGAR LIBRERÍA
require_once __DIR__ . '/lib/phpspreadsheet_nueva/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Border;

// --- CONSULTA PRINCIPAL ---
$sql = "SELECT `almacen`, sum(existencia) AS cant_articulos, sum(precio_venta*existencia) AS valor FROM `products` GROUP BY almacen";
$consulta = mysqli_query($con, $sql);
$hoy = date("d/m/Y");
$tituloReporte = "Resumen por Tienda: Inventarios al " . $hoy;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// Encabezados
$sheet->setCellValue('A1', $tituloReporte);
$sheet->mergeCells('A1:D1');

$sheet->setCellValue('A3', 'N°')
      ->setCellValue('B3', 'Tienda')
      ->setCellValue('C3', 'Cant. Articulos')
      ->setCellValue('D3', 'Valores');

// --- LLENADO DE DATOS ---
$i = 4;
$item = 1;
$tot_art = 0;
$tot_val = 0;

while($dato = mysqli_fetch_array($consulta)) {
    $id_alm = $dato['almacen'];
    $cant_articulos = (float)$dato['cant_articulos'];
    $valor = (float)$dato['valor'];
    
    // Buscar nombre de la tienda (Usando id_tienda como confirmamos)
    $almacen_nombre = "Tienda ID: " . $id_alm;
    $query_t = mysqli_query($con, "SELECT nombre FROM tiendas WHERE id_tienda='$id_alm' LIMIT 1");
    if ($row_t = mysqli_fetch_array($query_t)) {
        $almacen_nombre = $row_t['nombre'];
    }

    $sheet->setCellValue('A'.$i, $item)
          ->setCellValue('B'.$i, $almacen_nombre)
          ->setCellValue('C'.$i, $cant_articulos)
          ->setCellValue('D'.$i, $valor);
    
    // Formatos numéricos
    $sheet->getStyle('C'.$i)->getNumberFormat()->setFormatCode('#,##0');
    $sheet->getStyle('D'.$i)->getNumberFormat()->setFormatCode('#,##0.00');

    $tot_art += $cant_articulos;
    $tot_val += $valor;
    $i++;
    $item++;
}

// Totales
$sheet->setCellValue('B'.$i, "TOTALES")
      ->setCellValue('C'.$i, $tot_art)
      ->setCellValue('D'.$i, $tot_val);

$sheet->getStyle('C'.$i)->getNumberFormat()->setFormatCode('#,##0');
$sheet->getStyle('D'.$i)->getNumberFormat()->setFormatCode('#,##0.00');
$sheet->getStyle('B'.$i.':D'.$i)->getFont()->setBold(true);

// --- ESTILOS ---
$estiloCabecera = [
    'font' => ['bold' => true, 'color' => ['rgb' => 'FFFFFF']],
    'fill' => ['fillType' => Fill::FILL_SOLID, 'startColor' => ['rgb' => 'F00000']],
    'alignment' => ['horizontal' => Alignment::HORIZONTAL_CENTER]
];

$sheet->getStyle('A1:D1')->applyFromArray($estiloCabecera);
$sheet->getStyle('A3:D3')->applyFromArray($estiloCabecera);

foreach (range('A', 'D') as $col) {
    $sheet->getColumnDimension($col)->setAutoSize(true);
}

$sheet->setTitle('Resumen');

// --- SALIDA FINAL SIN BASURA ---
if (ob_get_length()) ob_end_clean(); // Limpiamos CUALQUIER cosa que se haya impreso antes

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Resumen_Invalteca.xlsx"');
header('Cache-Control: max-age=0');

$writer = new Xlsx($spreadsheet);
$writer->save('php://output');
exit;