69 lines
2.4 KiB
PHP
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;
|
|
}
|