<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Recibir parámetros del año, mes, semana, localidad y provincia
$year = $_GET['year'];
$month = $_GET['month'];
$week = $_GET['week'];
$localidad = $_GET['localidad'];
$provincia = $_GET['provincia'];

// Crear archivo CSVa
$archivoCsv = "ventas_mes_{$year}_{$month}_" . date("His") . ".csv";

// Conectar a la base de datos
include 'concha.php';
$conexion = mysqli_connect($host, $usuario, $contra, $basedatos);

// Verificar la conexión
if (!$conexion) {
    die("Error de conexión: " . mysqli_connect_error());
}

// Determinar el rango de fechas de la semana actual
$startDay = ($week - 1) * 7 + 1;
$endDay = min($startDay + 6, cal_days_in_month(CAL_GREGORIAN, $month, $year));

$startDate = sprintf("%04d%02d%02d0000", $year, $month, $startDay);
$endDate = sprintf("%04d%02d%02d2359", $year, $month, $endDay);

// Consulta de ventas para el rango semanal
$sqlVentas = "SELECT ID, fecha FROM ventas WHERE fecha BETWEEN '$startDate' AND '$endDate'";
$consultaVentas = mysqli_query($conexion, $sqlVentas);

// Verificar si hay algún error en la consulta SQL
if (!$consultaVentas) {
    die("Error en la consulta SQL: " . mysqli_error($conexion));
}

// Estructura para almacenar los datos que se van a escribir en el CSV
$datosSemana = [];

// Procesar ventas y generar datos
while ($venta = mysqli_fetch_assoc($consultaVentas)) {
    $idVenta = $venta['ID'];

    // Consulta de movimientos (productos vendidos) para la venta
    $sqlMovimientos = "SELECT m.ID_articulo, a.barcode, a.titulo, a.precio, SUM(m.cantidad) as cantidad_vendida 
                       FROM movimientos m 
                       INNER JOIN articulos a ON m.ID_articulo = a.ID 
                       WHERE m.ID_venta = $idVenta 
                       GROUP BY m.ID_articulo";
    $consultaMovimientos = mysqli_query($conexion, $sqlMovimientos);

    if (!$consultaMovimientos) {
        die("Error en la consulta de movimientos: " . mysqli_error($conexion));
    }

    while ($articulo = mysqli_fetch_assoc($consultaMovimientos)) {
        $barcode = $articulo["barcode"];
        $titulo = $articulo["titulo"];
        $precio = floatval($articulo["precio"]);
        $cantidadVendida = intval($articulo["cantidad_vendida"]);
        $facturacionNeta = $precio * $cantidadVendida;

        // Agregar datos al array
        $datosSemana[] = [
            'fecha' => "{$year}-{$month}-Semana{$week}",
            'cod_sucursal' => '1',
            'tipo_vta' => 'piso',
            'ean' => $barcode,
            'ean_descripcion' => $titulo,
            'unidades_vendidas' => $cantidadVendida,
            'facturacion_neta' => $facturacionNeta,
            'localidad_provincia' => "{$localidad}/{$provincia}"
        ];
    }
}

// Escribir los datos en el archivo CSV
$csv = fopen($archivoCsv, 'a');
foreach ($datosSemana as $fila) {
    fputcsv($csv, $fila);
}
fclose($csv);

// Finaliza la ejecución de la semana
echo "Datos de la semana $week procesados.";
mysqli_close($conexion);
?>
