<?php

function buscarDadosPorEAN($caminhoDaPasta, $ean)
{
    // Obtém a lista de arquivos XML na pasta e subpastas
    $arquivosXML = getArquivosXML($caminhoDaPasta);

    // Array para armazenar os dados encontrados
    $dadosEncontrados = [];

    // Itera sobre os arquivos XML
    foreach ($arquivosXML as $arquivo) {
        // Carrega o arquivo XML
        $xml = simplexml_load_file($arquivo);

        // Verifica se o EAN está presente no arquivo XML
        //if (contemEAN($xml, $ean)) {
            // Obtém os dados desejados do XML
            $chave = (string) $xml->NFe->infNFe['Id'];
            $dataEmissao = (string) $xml->NFe->infNFe->ide->dhEmi;
            $nomeProduto = (string) $xml->NFe->infNFe->det->prod->xProd;
            $codigoItem = (string) $xml->NFe->infNFe->det->prod->cProd;
            $quantidade = (float) $xml->NFe->infNFe->det->prod->qCom;
			$codigoEAN = (string) $xml->NFe->infNFe->det->prod->cEAN;
			
			//if($codigoEAN == '7898132987701'){

            // Armazena os dados no array
            $dadosEncontrados[] = [
                'chave' => $chave,
                'dataEmissao' => $dataEmissao,
                'nomeProduto' => $nomeProduto,
                'codigoItem' => $codigoItem,
                'quantidade' => $codigoEAN
            ];

           
       //}
    }

    return $dadosEncontrados;
}


function contemEAN($xml, $ean)
{
    // Verifica se o EAN está presente no XML
    foreach ($xml->NFe->infNFe->det as $det) {
        $codigoEAN = (string) $det->prod->cEAN;
        if ($codigoEAN == $ean) {
            return true;
        }
    }

    return false;
}




function getArquivosXML($diretorio)
{
    $arquivos = [];

    $diretorio = rtrim($diretorio, '/') . '/';

    $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($diretorio));
	
    foreach ($it as $arquivo) {
		
        if ($arquivo->isFile() && pathinfo($arquivo, PATHINFO_EXTENSION) == 'xml') {
			
            $arquivos[] = $arquivo->getPathname();
        }
    }

    return $arquivos;
}
