From e0b7b4e834fed12b84a4a5112f8df07c97ead7fb Mon Sep 17 00:00:00 2001 From: Sajo <75281007+sajotrei@users.noreply.github.com> Date: Mon, 26 Oct 2026 19:26:01 +0100 Subject: [PATCH] fix: mostra il fornitore degli XML locali in importFE --- plugins/importFE/list.php | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/plugins/importFE/list.php b/plugins/importFE/list.php index 57c20015e..121059761 100755 --- a/plugins/importFE/list.php +++ b/plugins/importFE/list.php @@ -28,6 +28,41 @@ $directory = FatturaElettronica::getImportDirectory(); +$readLocalSupplier = static function ($path) { + if (!is_readable($path) || strtolower(pathinfo($path, PATHINFO_EXTENSION)) !== 'xml') { + return ''; + } + + // Anteprima in sola lettura, senza avviare la procedura di importazione. + $previous_errors = libxml_use_internal_errors(true); + try { + $xml = new DOMDocument(); + if (!$xml->load($path, LIBXML_NONET | LIBXML_NOCDATA) || $xml->doctype !== null) { + return ''; + } + + $xpath = new DOMXPath($xml); + $supplier = $xpath->query('/*[local-name()="FatturaElettronica" or local-name()="FatturaElettronicaSemplificata"]/*[local-name()="FatturaElettronicaHeader"]/*[local-name()="CedentePrestatore"]')->item(0); + if ($supplier === null) { + return ''; + } + + $anagrafica = $xpath->query('./*[local-name()="DatiAnagrafici"]/*[local-name()="Anagrafica"]', $supplier)->item(0) ?: $supplier; + $denominazione = trim($xpath->evaluate('string(./*[local-name()="Denominazione"])', $anagrafica)); + if ($denominazione !== '') { + return $denominazione; + } + + $nome = trim($xpath->evaluate('string(./*[local-name()="Nome"])', $anagrafica)); + $cognome = trim($xpath->evaluate('string(./*[local-name()="Cognome"])', $anagrafica)); + + return trim($nome.' '.$cognome); + } finally { + libxml_clear_errors(); + libxml_use_internal_errors($previous_errors); + } +}; + if (!empty($list)) { echo ' @@ -50,12 +85,14 @@ '; if (!empty($element['file'])) { + $supplier = $readLocalSupplier($directory.'/'.$name); + echo ' - +

'.$name.'

-'.htmlspecialchars($supplier !== '' ? $supplier : '-', ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8').' - -