Ir para conteúdo
Fórum Script Brasil
  • 0

Pedindo para o Livewire consultar uma Nota Fiscal


Frank K Hosaka

Pergunta

Para consultar uma nota fiscal eu usava o Windows e o OneDrive, isso é um serviço bem chato, mas consegui passar o serviço para o Livewire.

Criei a tabela tblivroentrada e dentro dele guardei uma cópia do xml da nota fiscal. Para o Livewire procurar o CFOP e o NCM de um produto, ele usa essa função:

 

<?php // listagem parcial
function consultaLivro($lcto = null) {
        if($lcto) {
            $consulta=tblivroentrada::where('lcto',$lcto)->first();
            if(!$consulta) {
                $this->mensagem = "Não há registro no livro para o lançamento $lcto";
            } else {
                $xml=simplexml_load_string($consulta->xml);
                $namespaces=$xml->getNamespaces(true);
                $xml->registerXPathNamespace('n',$namespaces['']);
                $nome=$xml->xpath('//n:emit/n:xNome')[0];
                $letra=strtolower(substr($nome,0,1));
                $codigos=explode(" ",$this->codforn);
                foreach($codigos as $codigo) {
                    if(strtolower($codigo[0]) === $letra) {
                        $codXML = substr($codigo,1);
                        break;
                    }
                }
                $itens=$xml->xpath('//n:det');
                foreach($itens as $item) {
                    if($item->prod->cProd==$codXML) {
                        $cfop=$item->prod->CFOP;
                        $ncm=$item->prod->NCM;
                        $prod=$item->prod->xProd;
                    }
                }
                $this->mensagem = "Foi encontrado $this->codforn <br>
                    Fornecedor $nome <br> Produto $prod <br>
                    CFOP $cfop NCM $ncm";
            }
        } else { $this->mensagem = null; }
    }

e no blade tenho:
	@if($mensagem)
        <div class="fixed inset-0 flex items-center 
            justify-center" style="background-color: rgba(0, 0, 0, 0.5)">
            <div class="bg-white p-6 rounded shadow-lg">
                <h2 class="text-lg font-semibold">Mensagem</h2>
                <p class="mt-2 text-gray-700 text-xl whitespace-nowrap">{!! $mensagem !!}</p>
                <button wire:click="consultaLivro" class="border rounded-lg px-2 py-2 ">Fechar</button>
            </div>
        </div>
    @endif
    

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,5k
    • Posts
      652,4k
×
×
  • Criar Novo...