<?php
// actualizar_empaque.php
include '../db/db.php';

// Obtener 10 productos con proveedor = 2, url externa no nula y txtEmpaque nulo
$sql = "SELECT id, urlExterna FROM tb_productos 
        WHERE idProveedor = 2 AND urlExterna IS NOT NULL
        ORDER BY id";
$res = $conn->query($sql);

while ($row = $res->fetch_assoc()) {
    $id = $row['id'];
    $url = $row['urlExterna'];

    // Obtener HTML
    $html = @file_get_contents($url);
    if (!$html) {
        echo "Error al acceder a $url\n";
        continue;
    }

    // Cargar DOM
    libxml_use_internal_errors(true);
    $doc = new DOMDocument();
    $doc->loadHTML($html);
    libxml_clear_errors();

    // Buscar tabla con clase table-list
    $xpath = new DOMXPath($doc);
    $rows = $xpath->query("//table[contains(@class,'table-list')]//tr");

    $unidades = 0;
    $medidas = '';
    $peso = '';

    foreach ($rows as $tr) {
        $tds = $tr->getElementsByTagName('td');
        if ($tds->length < 2) continue;

        $label = trim($tds[0]->textContent);
        $value = trim($tds[1]->textContent);

        if (stripos($label, 'Unidades por Caja') !== false) {
            preg_match('/(\d+)/', $value, $m);
            $unidades = (int)($m[1] ?? 0);
        } elseif (stripos($label, 'Empaque') !== false) {
            preg_match('/([\d,\.]+).*?X.*?([\d,\.]+).*?X.*?([\d,\.]+).*?\/.*?([\d,\.]+)/', $value, $m);
            if (count($m) == 5) {
                $medidas = "{$m[1]} X {$m[2]} X {$m[3]}";
                $peso = $m[4];
            }
        }
    }

    if ($unidades > 0 && $medidas && $peso) {
        $txtEmpaque = "Caja x {$unidades} unds Medidas {$medidas} Peso {$peso} Kg";
        $upd = $conn->prepare("UPDATE tb_productos SET txtEmpaque = ? WHERE id = ?");
        $upd->bind_param('si', $txtEmpaque, $id);
        $upd->execute();
        echo "Actualizado producto ID $id\n";
    } else {
        echo "Datos incompletos para ID $id\n";
    }
}
