Análisis de $label: '$sku'"; echo ""; } $skus_to_test = ['AFS-0465', 'AFS-0466', 'AFS-0467']; echo "

Diagnóstico de SKU AFS-0466 (NUEVA LÓGICA AUTO)

"; foreach ($skus_to_test as $s) { analyze_sku($s, "Literal en código"); } // Simular generación de Barcode con la nueva lógica $generator = new BarcodeGenerator(); echo "

Simulación de Generación CODE128 AUTO

"; foreach ($skus_to_test as $s) { echo "

Generando para: $s

"; // Usar reflexión para acceder a getBarcodeData si fuera necesario, // pero como ya actualizamos el archivo, podemos simplemente ver el resultado visual o recrear la lógica aquí para confirmar. $code = strtoupper(trim($s)); $len = strlen($code); $indices = []; $currentSet = ''; if (ctype_digit(substr($code, 0, 2))) { $indices[] = 105; // Start C $currentSet = 'C'; } else { $indices[] = 104; // Start B $currentSet = 'B'; } $i = 0; while ($i < $len) { if ($currentSet == 'B') { if ($i + 1 < $len && ctype_digit($code[$i]) && ctype_digit($code[$i+1])) { $indices[] = 99; // Switch to C $currentSet = 'C'; continue; } $indices[] = ord($code[$i]) - 32; // Simplificado para B $i++; } else { if (!($i + 1 < $len && ctype_digit($code[$i]) && ctype_digit($code[$i+1]))) { $indices[] = 100; // Switch to B $currentSet = 'B'; continue; } $indices[] = (int)substr($code, $i, 2); $i += 2; } } $sum = $indices[0]; for ($k = 1; $k < count($indices); $k++) { $sum += ($indices[$k] * $k); } $checksum = $sum % 103; $indices[] = $checksum; $indices[] = 106; // Stop echo "Índices CODE128 AUTO: " . implode(', ', $indices) . "
"; echo "Checksum: $checksum
"; echo "
"; } ?>