<?php
// Directorio donde están los archivos CSV
$directory = __DIR__; // Cambia esto si los archivos están en un directorio diferente
$folderName = basename($directory); // Nombre de la carpeta del comercio

// Obtener una lista de archivos CSV en el directorio
$files = glob($directory . '/*.csv');

// Ordenar los archivos por fecha de modificación (del más reciente al más antiguo)
usort($files, function($a, $b) {
    return filemtime($b) - filemtime($a);
});

// Obtener el mes anterior en formato 'MMMM' (febrero)
$previousMonth = date('F', strtotime('last month'));
$previousMonthFormatted = strftime('%B', strtotime('last month')); // En español

// Verificar si se han seleccionado archivos para combinar
if (isset($_POST['process']) && isset($_POST['selected_files'])) {
    $selectedFiles = array_reverse($_POST['selected_files']); // Invertir el orden de los archivos seleccionados
    $outputFile = $folderName . ' ' . $previousMonthFormatted . ' (kiosco).csv'; // Nombre del archivo descargado

    // Abrir el archivo combinado para escritura
    $outputHandle = fopen($outputFile, 'w');
    if ($outputHandle === false) {
        die("No se pudo crear el archivo combinado");
    }

    // Variable para controlar si es el primer archivo (para escribir las cabeceras una sola vez)
    $firstFile = true;

    // Procesar cada archivo seleccionado en el orden invertido
    foreach ($selectedFiles as $file) {
        $filePath = $directory . '/' . basename($file);

        // Verificar que el archivo existe
        if (file_exists($filePath)) {
            $fileHandle = fopen($filePath, 'r');
            if ($fileHandle !== false) {
                // Leer y escribir el contenido del archivo
                while (($data = fgetcsv($fileHandle)) !== false) {
                    // Escribir las cabeceras solo una vez (en el primer archivo)
                    if ($firstFile) {
                        fputcsv($outputHandle, $data);
                        $firstFile = false;
                    } else {
                        // Omitir cabecera en archivos adicionales
                        if (ftell($fileHandle) != 0) {
                            fputcsv($outputHandle, $data);
                        }
                    }
                }
                fclose($fileHandle);
            }
        }
    }
    fclose($outputHandle);

    // Descargar el archivo combinado
    header('Content-Description: File Transfer');
    header('Content-Type: application/csv');
    header('Content-Disposition: attachment; filename="' . basename($outputFile) . '"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($outputFile));
    readfile($outputFile);
    exit;
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Archivos CSV Recientes</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="bg-light">
    <div class="container py-5">
        <h1 class="text-center mb-4">Archivos CSV Recientes</h1>

        <form method="post" action="">
            <!-- Mover el botón de descarga arriba -->
            <button type="submit" name="process" class="btn btn-success mb-3">Procesar y Descargar Combinado</button>
            
            <?php if (count($files) > 0): ?>
                <table class="table table-bordered table-hover">
                    <thead class="table-dark">
                        <tr>
                            <th>Seleccionar</th>
                            <th>Archivo</th>
                            <th>Fecha de Modificación</th>
                            <th>Tamaño</th>
                            <th>Descargar</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($files as $index => $file): ?>
                            <tr>
                                <td>
                                    <input type="checkbox" name="selected_files[]" value="<?= basename($file) ?>" <?= $index < 4 ? 'checked' : '' ?>>
                                </td>
                                <td><?= basename($file) ?></td>
                                <td><?= date("d-m-Y H:i:s", filemtime($file)) ?></td>
                                <td><?= number_format(filesize($file) / 1024, 2) ?> KB</td> <!-- Tamaño en KB -->
                                <td>
                                    <a href="<?= basename($file) ?>" class="btn btn-primary btn-sm" download>Descargar</a>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            <?php else: ?>
                <p class="text-center">No se encontraron archivos CSV en el directorio.</p>
            <?php endif; ?>
        </form>
    </div>
</body>
</html>
