Listagem em tempo real
Senhores, boa tarde.
Estou com um probleminha... rss', preciso fazer a listagem de uma função da biblioteca "SPED-NFe" na qual consulto quais as NFe que emitiram contra meu CNPJ, porém o ele executa toda a função e depois me trás o resultado, eu gostaria de trazer o resultado instantaneamente, como se fosse uma atualização segundo a segundo.
>
Citar
//PHP DA COISA
$tools->model('55');
//este serviço somente opera em ambiente de produção
$tools->setEnvironment(1);
//este numero deverá vir do banco de dados nas proximas buscas para reduzir
//a quantidade de documentos, e para não baixar várias vezes as mesmas coisas.
$ultNSU = 0;
$maxNSU = $ultNSU;
$loopLimit = 50;
$iCount = 0;
$count_nfe_resumida = 0;
//executa a busca de DFe em loop
while ($ultNSU <= $maxNSU) {
$iCount++;
if ($iCount >= $loopLimit) {
break;
}
try {
//executa a busca pelos documentos
$resp = $tools->sefazDistDFe($ultNSU);
} catch (\Exception $e) {
echo $e->getMessage();
//tratar o erro
}
//extrair e salvar os retornos
$dom = new \DOMDocument();
$dom->loadXML($resp);
$node = $dom->getElementsByTagName('retDistDFeInt')->item(0);
$tpAmb = $node->getElementsByTagName('tpAmb')->item(0)->nodeValue;
$verAplic = $node->getElementsByTagName('verAplic')->item(0)->nodeValue;
$cStat = $node->getElementsByTagName('cStat')->item(0)->nodeValue;
$xMotivo = $node->getElementsByTagName('xMotivo')->item(0)->nodeValue;
$dhResp = $node->getElementsByTagName('dhResp')->item(0)->nodeValue;
$ultNSU = $node->getElementsByTagName('ultNSU')->item(0)->nodeValue;
$maxNSU = $node->getElementsByTagName('maxNSU')->item(0)->nodeValue;
$lote = $node->getElementsByTagName('loteDistDFeInt')->item(0);
if (empty($lote)) {
//lote vazio
continue;
}
//essas tags irão conter os documentos zipados
$docs = $lote->getElementsByTagName('docZip');
foreach ($docs as $doc) {
$numnsu = $doc->getAttribute('NSU');
$schema = $doc->getAttribute('schema');
//descompacta o documento e recupera o XML original
$content = gzdecode(base64_decode($doc->nodeValue));
//identifica o tipo de documento
$tipo = substr($schema, 0, 6);
//processar o conteudo do NSU, da forma que melhor lhe interessar
//esse processamento depende do seu aplicativo
}
if(strpos($content,"<xNome>",0) > 0)
{
$count_nfe_resumida++;
$pos_ini2 = strpos($content,"<xNome>",0)+7;
$pos_fim2 = strpos($content,"</xNome>",0);
$res_forn[$count_nfe_resumida] = utf8_decode(substr($content,$pos_ini2,$pos_fim2-$pos_ini2));
$pos_ini2 = strpos($content,"<chNFe>",0)+7;
$pos_fim2 = strpos($content,"</chNFe>",0);
$res_chave[$count_nfe_resumida] = utf8_decode(substr($content,$pos_ini2,$pos_fim2-$pos_ini2));
$res_num_nfe[$count_nfe_resumida] = substr($res_chave[$count_nfe_resumida],25,9);
$pos_ini2 = strpos($content,"<CNPJ>",0)+6;
$pos_fim2 = strpos($content,"</CNPJ>",0);
$res_cnpj[$count_nfe_resumida] = utf8_decode(substr($content,$pos_ini2,$pos_fim2-$pos_ini2));
/*$pos_ini2 = strpos($content,"<IE>",0)+2;
$pos_fim2 = strpos($content,"</IE>",0);
$res_ie = utf8_decode(substr($content,$pos_ini2,$pos_fim2-$pos_ini2));*/
$pos_ini2 = strpos($content,"<vNF>",0)+5;
$pos_fim2 = strpos($content,"</vNF>",0);
$res_vlr_nfe[$count_nfe_resumida] = utf8_decode(substr($content,$pos_ini2,$pos_fim2-$pos_ini2));
$pos_ini2 = strpos($content,"<nProt>",0)+7;
$pos_fim2 = strpos($content,"</nProt>",0);
$res_protocolo[$count_nfe_resumida] = utf8_decode(substr($content,$pos_ini2,$pos_fim2-$pos_ini2));
sleep(2);
file_put_contents('NF/xml/compras/'.$res_forn[$count_nfe_resumida].' - '.$res_num_nfe[$count_nfe_resumida].'.xml',$content);
<!-- PARTE HTML DA COISA -->
<div class="row " style="padding: 0 10px 10px 10px;width:100%;text-align:center;">
<h1 style=" padding-top: 10px; padding-bottom: 20px;">NFe - Emitidas Contra o CNPJ</h1>
<form method="post" style="text-align:center">
<br>
<table class='table table-striped table-bordered table-hover' style= 'max-width: 800px'>
<tr>
<th> Chave de Acesso </th>
<th> Nome do Fornecedor </th>
<th> CNPJ </th>
<th> Valor </th>
<th> Nº Protocolo </th>
</tr>
<? $x=0;
while($x<=count($count_nfe_resumida)){ $x++;?>
<div class="row " style="padding: 0 10px 10px 10px;width:100%;text-align:left;">
<label style=" padding-top: 0px; padding-bottom: 0px;" class="control-label">Quantidades de NFe Encontrada</label>
<div style="max-width: 60px;margin:0px 0px 30px 0px;">
<input type='text' class='form-control onlyInteger' style='width:100%;' name='qnt_nf' id='qnt_nf' placeholder='0' value="<? echo $count_nfe_resumida;?>" readonly>
</div>
<tr>
<td><? echo $res_chave[$x]; ?></td>
<td><? echo $res_forn[$x]; ?></td>
<td><? echo $res_cnpj[$x]; ?></td>
<td><? echo $res_vlr_nfe[$x]; ?></td>
<td><? echo $res_protocolo[$x]; ?></td>
</tr>
<? } ?>
</table>
<div style="clear: both; height: 30px"></div>
<input type="submit" class=" form-control" style="max-width:120px;margin:0 0px 0px 0;" value="Buscar NFe" name="bt_enviar" id="bt_enviar">
<br><br>
</form>
</div>
Essas informações não são salvas em DB, é apenas para consulta.
Se alguém puder ajudar serei muito grato,
Abraço.
Michael DouglasDiscussão (2)
Carregando comentários...