Files
zibo-dashboard/public/userarea/mago_probe_matrice_cli.php
T
2026-10-20 11:31:17 +02:00

69 lines
2.4 KiB
PHP

<?php
/**
* mago_probe_matrice_cli.php - SOLO LETTURA. Mostra le righe di un ordine Mago con TUTTI i campi
* ed evidenzia quelli che contengono il codice cercato (per trovare dove Mago salva la matrice).
*
* Uso: php mago_probe_matrice_cli.php --ord=26/00680 --find=00786 > probe_matrice.txt 2>&1
*/
if (PHP_SAPI !== 'cli') {
http_response_code(403);
exit('Solo da riga di comando');
}
$dirs = [__DIR__, dirname(__DIR__), dirname(__DIR__, 2), dirname(__DIR__, 3)];
foreach ($dirs as $d) {
if (file_exists($d . '/vendor/autoload.php')) {
require_once $d . '/vendor/autoload.php';
break;
}
}
if (class_exists('Dotenv\Dotenv')) {
foreach ($dirs as $d) {
if (file_exists($d . '/.env')) {
Dotenv\Dotenv::createImmutable($d)->safeLoad();
break;
}
}
}
require_once __DIR__ . '/class/MagoClient.php';
$opts = getopt('', ['ord:', 'find::']);
$ord = $opts['ord'] ?? '';
$find = $opts['find'] ?? '';
if ($ord === '') {
exit("Indica il numero ordine: --ord=26/00680\n");
}
$mago = MagoClient::fromEnv();
try {
$mago->login();
$r = $mago->getDataTable('MA_SaleOrdDetails', [
'filters' => [['key' => 'InternalOrdNo', 'value' => $ord, 'operator' => 'like']],
'recordsPerPage' => 50,
]);
echo "Righe trovate per l'ordine $ord: " . $r['total'] . PHP_EOL;
foreach ($r['records'] as $i => $rec) {
echo PHP_EOL . '=== RIGA ' . ($i + 1) . ' (Line ' . ($rec['Line'] ?? '?') . ', articolo ' . ($rec['Item'] ?? '') . ') ===' . PHP_EOL;
if ($find !== '') {
$hits = [];
foreach ($rec as $k => $v) {
if (is_scalar($v) && stripos((string)$v, $find) !== false) $hits[] = "$k = $v";
}
echo '>>> CAMPI CHE CONTENGONO "' . $find . '": ' . ($hits ? implode(' | ', $hits) : 'nessuno') . PHP_EOL;
}
// tutti i campi non vuoti
foreach ($rec as $k => $v) {
if ($v === '' || $v === null || $v === 0 || $v === 0.0 || $v === false || $v === '1799-12-31T00:00:00') continue;
echo str_pad($k, 32) . ' ' . (is_scalar($v) ? str_replace(["\r", "\n"], [' ', ' ⏎ '], (string)$v) : json_encode($v)) . PHP_EOL;
}
}
} catch (Throwable $e) {
fwrite(STDERR, PHP_EOL . 'ERRORE: ' . $e->getMessage() . PHP_EOL);
} finally {
$mago->logoff();
echo PHP_EOL . 'Logoff eseguito.' . PHP_EOL;
}