Jump to content

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

Share this post


Link to post
Share on other 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 ?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By infonet
      Poderiam me ajudar com esta consulta SQL?   Acontece que ela roda normal, mas quando coloco na paginação ela não funciona:   mysqli_query ($conn, "SET @a := 0"); $_pagi_sql = "SELECT *, LPAD( @a := @a + 1, 5, '0' ) 'sequencial' FROM tb_his WHERE idclih = $idclientHis ORDER BY dt_his DESC, idhis DESC, sequencial DESC";   O erro acontece somente por causa do final: sequencial DESC, pois quando eu retiro, funciona normalmente.   Obrigado!
    • By gamesmax2
      Pessoal sou  novo com crianção de app android, este app e bastante simples utilizar webview.
      Estou com um problema, queria abrir link externo que não seja do meu site no navegador do celular, meu código abrir todos os links externo no meu app.
       
      exemplo quero que links externo sejam aberto no navegador e link como Youtube ou que utilizar algum app do celular seja aberto nesse app, segue meu codigo:
       
      public class MainActivity extends AppCompatActivity { private WebView cash; @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cash = findViewById(R.id.site); cash.getSettings().setJavaScriptEnabled(true); cash.setFocusable(true); cash.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); cash.getSettings().setAppCacheEnabled(true); cash.getSettings().setDomStorageEnabled(true); cash.setWebViewClient(new WebViewClient()); cash.setWebChromeClient(new Meusite()); cash.loadUrl("https://www.meusite.com.br/meu_site/"); } private class Meusite extends WebChromeClient { private View mCustomView; private WebChromeClient.CustomViewCallback mCustomViewCallback; protected FrameLayout mFullscreenContainer; private int mOriginalOrientation; private int mOriginalSystemUiVisibility; Meusite() {} public Bitmap getDefaultVideoPoster() { if (mCustomView == null) { return null; } return BitmapFactory.decodeResource(getApplicationContext().getResources(), 2130837573); } public void onHideCustomView() { ((FrameLayout)getWindow().getDecorView()).removeView(this.mCustomView); this.mCustomView = null; getWindow().getDecorView().setSystemUiVisibility(this.mOriginalSystemUiVisibility); setRequestedOrientation(this.mOriginalOrientation); this.mCustomViewCallback.onCustomViewHidden(); this.mCustomViewCallback = null; } public void onShowCustomView(View paramView, WebChromeClient.CustomViewCallback paramCustomViewCallback) { if (this.mCustomView != null) { onHideCustomView(); return; } this.mCustomView = paramView; this.mOriginalSystemUiVisibility = getWindow().getDecorView().getSystemUiVisibility(); this.mOriginalOrientation = getRequestedOrientation(); this.mCustomViewCallback = paramCustomViewCallback; ((FrameLayout)getWindow().getDecorView()).addView(this.mCustomView, new FrameLayout.LayoutParams(-1, -1)); getWindow().getDecorView().setSystemUiVisibility(3846); } } @Override public void onBackPressed() { if (cash.canGoBack()) { cash.goBack(); } else { super.onBackPressed(); } } }  
    • By Eurales antony
      Boa noite developers, eu codei um sistema em PHP mas não para ser vendido e sim alugado, o cliente aluga eu envio os arquivos do sistema e uma chave e apenas com uma chave valida o sistema funciona, o sistema está pronto terminei de coda o ofuscador e um contaminador(insere códigos deanecesaarios no código) mas agora eu preciso criptografar todos os arquivos, tipo base_64 ou melhor, com o ofuscador e contaminador o código fonte está totalmente ilegível mas quero que fique igual a um código que eu vi, um monte de caracteres nada vê com nada não sei se era base 64 na verdade não entendo muito sobre criptografia quem puder me ajudar eu agradeço e quem chegou até aqui agrade pelo atenção, boa noite 
    • By eduardaarosaa
      Olá!!! Gostaria de saber como converter um objeto em array.
      Já tentei usar get_objet_vars e não funcionou ... veio um array vazio 
      Exemplo: array(){
      }
      array(){
      }
      Meu objeto está assim: 
      object(Illuminate\Http\UploadedFile)#205 (7) {
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        bool(false)
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(10) "eliete.jpg"
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(10) "image/jpeg"
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        int(0)
        ["hashName":protected]=>
        NULL
        ["pathName":"SplFileInfo":private]=>
        string(24) "C:\xampp\tmp\php8467.tmp"
        ["fileName":"SplFileInfo":private]=>
        string(11) "php8467.tmp"
      }
      object(Illuminate\Http\UploadedFile)#211 (7) {
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        bool(false)
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(40) "f114abec-1fe1-4e86-92b0-5b976b4c50c0.jpg"
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(10) "image/jpeg"
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        int(0)
        ["hashName":protected]=>
        NULL
        ["pathName":"SplFileInfo":private]=>
        string(24) "C:\xampp\tmp\php8468.tmp"
        ["fileName":"SplFileInfo":private]=>
        string(11) "php8468.tmp"
      }
      object(Illuminate\Http\UploadedFile)#212 (7) {
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        bool(false)
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(27) "bitcoin-3125488_960_720.png"
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(9) "image/png"
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        int(0)
        ["hashName":protected]=>
        NULL
        ["pathName":"SplFileInfo":private]=>
        string(24) "C:\xampp\tmp\php8469.tmp"
        ["fileName":"SplFileInfo":private]=>
        string(11) "php8469.tmp"
      }
      object(Illuminate\Http\UploadedFile)#213 (7) {
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        bool(false)
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(14) "imagem0033.jpg"
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(10) "image/jpeg"
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        int(0)
        ["hashName":protected]=>
        NULL
        ["pathName":"SplFileInfo":private]=>
        string(24) "C:\xampp\tmp\php8479.tmp"
        ["fileName":"SplFileInfo":private]=>
        string(11) "php8479.tmp"
      }
       
      Obrigada!!!
    • By eduardaarosaa
      Olá!!! Gostaria de saber como converter um objeto em array.
      Já tentei usar get_objet_vars e não funcionou ... veio um array vazio 
      Exemplo: array(){
      }
      array(){
      }
      Meu objeto está assim: 
      object(Illuminate\Http\UploadedFile)#205 (7) {
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        bool(false)
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(10) "eliete.jpg"
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(10) "image/jpeg"
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        int(0)
        ["hashName":protected]=>
        NULL
        ["pathName":"SplFileInfo":private]=>
        string(24) "C:\xampp\tmp\php8467.tmp"
        ["fileName":"SplFileInfo":private]=>
        string(11) "php8467.tmp"
      }
      object(Illuminate\Http\UploadedFile)#211 (7) {
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        bool(false)
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(40) "f114abec-1fe1-4e86-92b0-5b976b4c50c0.jpg"
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(10) "image/jpeg"
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        int(0)
        ["hashName":protected]=>
        NULL
        ["pathName":"SplFileInfo":private]=>
        string(24) "C:\xampp\tmp\php8468.tmp"
        ["fileName":"SplFileInfo":private]=>
        string(11) "php8468.tmp"
      }
      object(Illuminate\Http\UploadedFile)#212 (7) {
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        bool(false)
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(27) "bitcoin-3125488_960_720.png"
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(9) "image/png"
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        int(0)
        ["hashName":protected]=>
        NULL
        ["pathName":"SplFileInfo":private]=>
        string(24) "C:\xampp\tmp\php8469.tmp"
        ["fileName":"SplFileInfo":private]=>
        string(11) "php8469.tmp"
      }
      object(Illuminate\Http\UploadedFile)#213 (7) {
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        bool(false)
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(14) "imagem0033.jpg"
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        string(10) "image/jpeg"
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
        int(0)
        ["hashName":protected]=>
        NULL
        ["pathName":"SplFileInfo":private]=>
        string(24) "C:\xampp\tmp\php8479.tmp"
        ["fileName":"SplFileInfo":private]=>
        string(11) "php8479.tmp"
      }
       
      Obrigada!!!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.