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 '
|
'.$name.' |
- - | +'.htmlspecialchars($supplier !== '' ? $supplier : '-', ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8').' | - | - |