<?php
include '../../../script/conexion.php';

try {
    $conn->begin_transaction();

    $sqlProductos = "SELECT referencia FROM producto ORDER BY referencia ASC";
    $queryProductos = $conn->query($sqlProductos);

    if (!$queryProductos) {
        throw new Exception("Error consultando productos: " . $conn->error);
    }

    while ($rowProducto = $queryProductos->fetch_assoc()) {
        $class_referencia = $conn->real_escape_string($rowProducto['referencia']);

        $sqlTallas = "
            SELECT talla FROM alm_novedad WHERE referencia_producto='$class_referencia'
            UNION
            SELECT talla FROM alm_compra_detalle WHERE referencia_producto='$class_referencia'
            UNION
            SELECT talla FROM alm_venta_detalle WHERE referencia_producto='$class_referencia'
            UNION
            SELECT talla FROM alm_pedido_detalle WHERE referencia_producto='$class_referencia'
            UNION
            SELECT talla FROM alm_cierre_detalle WHERE referencia_producto='$class_referencia'
            UNION
            SELECT talla FROM alm_cierre_pedido_detalle WHERE referencia_producto='$class_referencia'
            UNION
            SELECT talla FROM alm_referencia_disponible WHERE referencia_producto='$class_referencia'
            UNION
            SELECT talla FROM alm_referencia_produccion WHERE referencia_producto='$class_referencia'
            UNION
            SELECT talla FROM alm_referencia_despacho WHERE referencia_producto='$class_referencia'
            UNION
            SELECT talla FROM alm_referencia_cierre WHERE referencia_producto='$class_referencia'
            UNION
            SELECT dd.talla
            FROM despacho d
            INNER JOIN despacho_detalle dd ON dd.id_despacho = d.id
            WHERE d.nombre_tercero='INNOVASUELAS ALMACEN'
              AND dd.referencia_producto='$class_referencia'
            UNION
            SELECT talla
            FROM referencia_despacho
            WHERE nombre_tercero='INNOVASUELAS ALMACEN'
              AND referencia_producto='$class_referencia'
            ORDER BY talla ASC
        ";

        $queryTallas = $conn->query($sqlTallas);

        if (!$queryTallas) {
            throw new Exception("Error consultando tallas de $class_referencia: " . $conn->error);
        }

        while ($rowTalla = $queryTallas->fetch_assoc()) {
            if ($rowTalla['talla'] === null || $rowTalla['talla'] === '') {
                continue;
            }

            $class_talla = $conn->real_escape_string($rowTalla['talla']);
            require '../../../clases/class-referencia.php';
        }
    }

    $conn->commit();

    echo '<script>
        self.location = "../sincronizar.php?ok=1";
    </script>';

} catch (Exception $e) {
    $conn->rollback();
    exit("Error: " . $e->getMessage());
}