<?php 
require_once('../../../includes/load.php');
require_once('../../../vendor/autoload.php');
 

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$fechain = $db->escape($_POST['toDate']);
$fechater = $db->escape($_POST['fromDate']);

$consulta = "SELECT NombreProducto, MarcaProducto, NombreUnidadMedida, PrecioProducto, IgvPrecioProducto FROM producto WHERE FechaRegistroProducto BETWEEN '$fechain' AND '$fechater'";
$sentencia = $db->query($consulta, [
PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL,
]);

$documento = new Spreadsheet();

$hojaDeProductos = $documento->getActiveSheet();
# Se usa para filtar los campos que uno ponga
$hojaDeProductos = $documento->getActiveSheet()->setAutoFilter('B1:F1');

# Se usa para ponerle un titulo a la hoja de excel 
$hojaDeProductos->setTitle("Productos");

# Cambiar de color todas las columnas que indique 

$documento->getActiveSheet()->getStyle('B1:F1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB('00FF7F');

# Auto width para todas las columnas 
for ($i = 'A'; $i !=  $documento->getActiveSheet()->getHighestColumn(); $i++) {
    $documento->getActiveSheet()->getColumnDimension($i)->setAutoSize(TRUE);
}


# Encabezado de los productos
$encabezado = ["Codigo", "Producto", "Precio de compra", "Precio de venta", "Existencia"];
# El último argumento es por defecto A1
$hojaDeProductos->fromArray($encabezado, null, 'B1');



# Comenzamos en la fila 2
$numeroDeFila = 2;
while ($producto = $sentencia->fetch_object()) {
    # Obtener registros de MySQL
    $NombreProducto = $producto->NombreProducto;
    $MarcaProducto = $producto->MarcaProducto;
    $NombreUnidadMedida = $producto->NombreUnidadMedida;
    $PrecioProducto = $producto->PrecioProducto;
    $IgvPrecioProducto = $producto->IgvPrecioProducto;
    # Escribir registros en el documento
    $hojaDeProductos->setCellValueByColumnAndRow(2, $numeroDeFila, $NombreProducto);
    $hojaDeProductos->setCellValueByColumnAndRow(3, $numeroDeFila, $MarcaProducto);
    $hojaDeProductos->setCellValueByColumnAndRow(4, $numeroDeFila, $NombreUnidadMedida);
    $hojaDeProductos->setCellValueByColumnAndRow(5, $numeroDeFila, $PrecioProducto);
    $hojaDeProductos->setCellValueByColumnAndRow(6, $numeroDeFila, $IgvPrecioProducto);
    $numeroDeFila++;
}

  $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($documento, 'Xlsx');

  $file_name = 'Reporte';

  $writer->save($file_name);

  header('Content-Type: application/x-www-form-urlencoded');

  header('Content-Transfer-Encoding: Binary');

  header("Content-disposition: attachment; filename=\"".$file_name.".xlsx\"");

  readfile($file_name);

  unlink($file_name);
  exit;


?>



