Ir para conteúdo

Recommended Posts

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 Douglas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Machel, boa noite.

 

Você como deixa claro na linha 5 este ambiente opera apenas em produção, você tentou operar ele em produção para ver o resultado ou tentou postar no grupo da NFePHP no Google Groups ?

 

Eu não conheço a SPED-NFe, mas qual classe você precisa acessar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

caramba precisava de uma aplicação assim tbm, peguei seu codigo so q ta dando erro no meu, eu preciso pega uns dados no xml quando eles descompacta com o $content, so q nao to consegundo, to usando a função, simplexml_load_string

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por luiz monteiro
      Bom dia. Eu estou tentando encontrar uma maneira de evitar que após o usuário selecionar, se selecionar, uma imagem, essa seja substituída apenas por outra selecionada. Porém quando o usuário cancela a seleção, o input file remove o arquivo se já foi selecionado anteriormente.
      Essa é a estrutura que estou usando HTML
      form action="#" method="post" name="formulario" id="formulario" enctype="multipart/form-data"
      input type="file" name="file_name[]" br input type="file" name="file_name[]" br button enviar /button /form
      JS PURO
      Peguei esse script em um post aqui do stackoverflow e adaptei
      script type="text/javascript"
      let formulario = document.querySelector("#formulario"); formulario.addEventListener("change", (e)=>{ e.preventDefault(); var file = e.target.files[0]; if (e.target.files.length === 1 && e.target.files !== undefined && e.target.files !== null && file.type.match('image.*')) { console.log("if okay"); } else { //preciso entender o que devo fazer aqui para verificar se há arquivo no DOM desse target caso, o usuário cancele a seleção, para evitar que se há um arquivo no DOM esse permaneça. console.log(file); //CASO O USUÁRIO CANSELA A SELEÇÃO, RETORNA undefined } }); /script
      O if está correto, porém o que falta é o que fazer no else. Agradeço desde já.
    • Por luiz monteiro
      Olá. Tenho 3 formulários em uma mesma pagina, onde cada um tem 1 input type text.
      O que preciso é recuperar o nome desses inputs e o valor correspondente ao formulário submetido.
      =============
      form name="formulario1" id="formulario1"
      input type="text" name="nome1" value="valor1" /form
      form name="formulario2" id="formulario2"
      input type="text" name="nome2" value="valor2" /form
      form name="formulario3" id="formulario3"
      input type="text" name="nome3" value="valor3" /form
      =============
      ..........
      var formulario_submetido = document.getElementById("formulario1"); formulario_submetido.addEventListener('submit', function(e) { e.preventDefault(); //tentei console.log(document.querySelectorAll('#'+this.id + ' input').name); //tentei var formula = new FormData(formulario_submetido); console.log(formula.input['type=text'].name); //tentei console.log(formula.get(input['type=text']).name); ..........
        no console.log(e), ele está nessa hierarquia   form -> srcElement -> input -> attributes -> name 
      Como recupero o valor do name dele e o valor do value?
       
      Agradeço desde já.
    • Por ILR master
      Fala pessoal, tudo bem?
       
      Eu tenho um dominio e vários subdomios dentro.
      Quero saber como recuperar um cookie nos subdominios, uma vez que ele foi criado em um subdominio específico.
       
      Estrutura:
      Tô criando o cookie em usuario.dominio.com.br com o seguinte código:
       
      $valor = md5(uniqid(rand(), true));
      setcookie("token", $valor, time() + (60 * 10), "/", "www.dominio.com.br");
       
      Porém, quero recuperar esse valor em todos os outros subdominios, mas esse codigo aí não tá funcionando.
       
      Alguém pode ajudar?
      Valeu
       
    • Por ILR master
      Fala pessoal, tudo bem?
       
      Tô tentando fazer um pre-loading, mas não consigo de jeito algum.
      Quero mostrar uma animação enquanto a página é carregada e depois de caregada, esconder a animação e mostrar conteúdo.
       
      Aguém pode me ajudar?
       
      Segue código abaixo
       
       
      <!DOCTYPE html>
      <html lang="pt-br">
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0" />  
          <title>PÁGINA LOAD</title>

      <style type="text/css">
      .loadclass {
          border: 2px solid #f3f3f3; /* Light grey */
          border-top: 4px solid #ffc401; /* Blue */
          border-radius: 50%;
          width: 50px;
          height: 50px;
          animation: spin 2s linear infinite;
      }
      @keyframes spin {
          0% { transform: rotate(0deg); }
          100% { transform: rotate(360deg); }
      }
      .conteudo {
          display:none;
      }
      </style>
      <script>
          function loading(){
              document.getElementsByClassName('loadclass')[0].style.display="none";
              document.getElementsByClassName('conteudo').style.display="block";
          }
      </script>
      </head>
      <body onLoad="loading()">
      <div class="loadclass"></div>
      <div class="conteudo">SEU CONTEUDO AQUI DENTRO!!!</div>
      </body>
      </html>
    • Por LuizH.M
      from urllib.request import urlopen   response = urlopen("http://vimeo.com/api/v2/video/57733101.json").read().decode('utf8') dados = json.loads(response)[0] print(dados)   print('Titulo: ',dados['title']) print('URL: ',dados['url']) print('Duração',dados['duration'])     a parte do json fala que não está definida   me ajudem pls    estou usando o visual studio
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.