Giter Club home page Giter Club logo

sped-da's People

Contributors

adelioreis avatar carlospauluk avatar cassianorafael avatar cleitonperin avatar edigomes avatar eduardokum avatar eumanito avatar gleidson2012 avatar guicalabria avatar gustavodebiasi avatar icompsoftcleiton avatar jeansilvaofficial avatar joaoroyosilva avatar jorgebeserra avatar jsalmeida1101 avatar maisonsakamoto avatar matheusryndack avatar newtonman avatar p4bl04p avatar paseto avatar rabraga avatar rafaelestevamreis avatar rclenzi avatar ricardoapaes avatar robmachado avatar samuelbasso avatar sicoksoftware avatar thiago-you avatar thmarra avatar victorvilella avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sped-da's Issues

Erro ao gerar DANFE, $tPagNome indefinida

Ao atualizar o projeto, deparei com a mensagem de que a variável em questão não estava definida. Isto ocorreu no arquivo nfephp-org/sped-da/src/Legacy/Common.php na linha 535. Localmente fiz a correção declarando a variável no topo da função, antes do Switch Case.

Dacte

Bom dia ,
tenho uma impressão de dacte do cte, mas o problema que acontece é que na parte dos DOCUMENTOS ORIGINÁRIOS eu tenho 17 notas e quando eu vo gera as chaves passam por cima de OBSERVAÇÃO E DADOS ESPECÍFICOS ABAIXO faz com que meu dacte mal visualizado , sera que alguém tem uma atualização disso para me auxiliar.
segue o link da imagem abaixo.
http://prodapro.com/cacio/Capturar.PNG

Logo via URL

Boa tarde Pessoal,

Utilizo a API em alguns projetos, onde estes consomem um único projeto centralizado da API.
E me surgiu a necessidade de dar um GET na logo que pode ou não estar em outro server.

Neste caso em específico está em um servidor diferente.
Gostaria de estudar em conjunto com vocês a possibilidade de através de uma URL carregar a logo.

Desde já, agradeço a atenção.

Obrigado.

Bug ao montar o PDF com múltiplas chaves referenciadas

Ao fazer uma nota com natureza de operação EXPORTAÇÃO preciso referenciar dezenas de notas fiscais em exportação indireta. O PDF criado junta todas essas referencias adicionais na primeira página deixando as próximas páginas livres e fazendo uma confusão visual enorme.

Em anexo o PDF para melhor entendimento do BUG.
4.pdf

Informacao de Rastro - Lote e Validade

Arquivo: sped-da/src/NFe/Danfe.php

No arquivo acima, na linha 2256, ha um erro no IF, pois o mesmo somente verifica se a variavel rastreio existe com o "isset", quando o correto seria verificar com o "empty", fazendo que as informacoes de rastro de produtos que tenham a tag "rastro" (mas nao tenham a tag "med") nao sejam exibidas.

O arquivo esta com este trecho de codigo:

        $rastro = $prod->getElementsByTagName("med");
        if (!isset($rastro)) {
            $rastro = $prod->getElementsByTagName("rastro");
        }

O correto seria:

        $rastro = $prod->getElementsByTagName("med");
        if (empty($rastro)) {
            $rastro = $prod->getElementsByTagName("rastro");
        }

Damdfe: Imcompatibilidade com versão PHP (v0.1.6)

Ao realizar a instalação do sped-da com a versão mais recente (v0.1.6) foi observado que a classe NFePHP\DA\MDFe\Damdfe::class possui sintaxe da versão mais atual do PHP (>= 7).

Observei que no composer possui compatibilidade com as versões ~5.5|~7.0, sendo assim impeditivo para sua atualização.

Sei que é fortemente encorajado a utilização da versão mais atual do PHP, porém essa atualização nem sempre pode ser realizada rapidamente...

Segue abaixo trecho da classe que utiliza a nova feature do PHP (Null coalescing):

 public function __construct(
        $xmlfile = '',
        $sOrientacao = '',
        $sPapel = '',
        $sPathLogo = '',
        $sDestino = 'I',
        $sDirPDF = '',
        $fontePDF = '',
        $mododebug = 2
    ) {
         //...
        //line 187
        $this->infCpl = $this->dom->getElementsByTagName('infCpl')->item(0)->nodeValue ?? "";
    }

Desde já agradeço a atenção...

zModalAquaviario()

No método zModalAquaviario() das classes NFePHP\DA\CTe\Dacte e NFePHP\DA\CTe\DacteV3 existe um problema na verificação de uma tag do XML.

Ao verificar a existência da tag infUnidCarga apenas comparando com !== null irá retornar um valor válido, pois a verificação retorna um array, segue um exemplo:

if ($this->infNFe->item(0) !== null
            && $this->infNFe->item(0)->getElementsByTagName('infUnidCarga') !== null
        ) {
}

Debugando o trecho $this->infNFe->item(0)->getElementsByTagName('infUnidCarga') teremos:

object(DOMNodeList)#68 (1) {
  ["length"]=>
  int(0)
}

Ou seja, uma valor diferente de null.

Para corrigir o problema é necessário apenas verificar se o length do objeto é maior que zero.

Trecho de código atual:

if ($this->infNF->item(0) !== null && $this->infNF->item(0)->getElementsByTagName('infUnidCarga') !== null) {
            $texto = $this->infNF
                ->item(0)
                ->getElementsByTagName('infUnidCarga')
                ->item(0)
                ->getElementsByTagName('idUnidCarga')
                ->item(0)->nodeValue;
        } elseif ($this->infNFe->item(0) !== null
            && $this->infNFe->item(0)->getElementsByTagName('infUnidCarga') !== null
        ) {
            $texto = $this->infNFe
                ->item(0)
                ->getElementsByTagName('infUnidCarga')
                ->item(0)
                ->getElementsByTagName('idUnidCarga')
                ->item(0)
                ->nodeValue;
        } elseif ($this->infOutros->item(0) !== null
            && $this->infOutros->item(0)->getElementsByTagName('infUnidCarga') !== null
        ) {
            $texto = $this->infOutros
                ->item(0)
                ->getElementsByTagName('infUnidCarga')
                ->item(0)
                ->getElementsByTagName('idUnidCarga')
                ->item(0)
                ->nodeValue;
        } else {
            $texto = '';
        }

Trecho de código com a alteração:

if ($this->infNF->item(0) !== null && $this->infNF->item(0)->getElementsByTagName('infUnidCarga')->length > 0) {
            $texto = $this->infNF
                ->item(0)
                ->getElementsByTagName('infUnidCarga')
                ->item(0)
                ->getElementsByTagName('idUnidCarga')
                ->item(0)->nodeValue;
        } elseif ($this->infNFe->item(0) !== null
            && $this->infNFe->item(0)->getElementsByTagName('infUnidCarga')->length > 0
        ) {
            $texto = $this->infNFe
                ->item(0)
                ->getElementsByTagName('infUnidCarga')
                ->item(0)
                ->getElementsByTagName('idUnidCarga')
                ->item(0)
                ->nodeValue;
        } elseif ($this->infOutros->item(0) !== null
            && $this->infOutros->item(0)->getElementsByTagName('infUnidCarga')->length > 0
        ) {
            $texto = $this->infOutros
                ->item(0)
                ->getElementsByTagName('infUnidCarga')
                ->item(0)
                ->getElementsByTagName('idUnidCarga')
                ->item(0)
                ->nodeValue;
        } else {
            $texto = '';
        }

NFCe em contingência offline

Boa noite,

Preciso imprimir uma NFCe emitida em contingência off-line "9".

Já consigo fazer essa impressão?

Se não... vou criar uma fork para essa demanda, pode ser?

Erro em Sped-da pGetTextoFatura

Conforme coloquei no forum tenho um caso de xml que possui a tag porém não possui a tag .
Dessa forma essa função gera um erro por não encontrar o elemento correspondente.
Na sequencia gero um pull request que corrige essa situação. Não sei se aplicaria a todos os casos mas no caso de xml que possui e não possui resolve.

Problema com dependências "nfephp-org/sped-common": "5.0.13",

No composer do projeto tem o requerimento "nfephp-org/sped-common": "5.0.13" mas no projeto do sped-common já estamos na versão 5.0.19.

Para quem está usando o sped-nfe já foi instalada a mais nova versão do sped-common e ao tentar instalar o sped-da está dando conflito na verão do sped-common.

Não seria o caso de trocar no composer para "nfephp-org/sped-common" : "^5.0", ao invés de "nfephp-org/sped-common": "5.0.13"?

DACTE - verificação para infUnidCarga

Durante a geração de um DACTe com CTe v.3 sem o campo infUnidCarga, as verificações existentes ainda estão permitindo adicionar o valor do campo, ocasionando o erro Call to a member function getElementsByTagName() on null.

DAMDFE - MDF-e 3.0

Boa Tarde Pessoal,

Em anexo está um XML da versão 3.0 do MDF-e. A principio ocorreu uma mudança no bloco do Pedágio, e isso pode estar ocasionando erro. Se não informar o bloco de Pedágio, está tudo funcionando.

42170513307588000172580010000001751000006210.zip

Se alguém tiver alguma ideia de correção ou puder testar para ver se ocorre o mesmo erro, agradeço.

Informações sobre Fatura/duplicata

Bom dia!

Com a alteração para a versão 4.00, a tag "indPag" que indicava se o pagamento é à vista ou a prazo saiu, com isso não há informações sobre o tipo de pagamento, (à vista, prazo, etc). O pessoal da empresa onde trabalho pediu para informar alguma coisa para indicar isso e pensei em pegar o valor do "tPag" e jogar a descrição (Dinheiro, Cheque, Duplicata Mercantil, etc). Alguém sabe se existe alguma restrição em relação a isso?

Att,
Jeferson Almeida

Volumes não estão sendo especificados quando há mais de um tipo

Olá,

Me deparei com um problema quando a nota tem mais de um tipo de volume, no caso eram:

Qtd.: 2 Esp.: Caixa(s) Marca: outfit Num.: 1.300 PesoB: 1.500 PesoL: 1.300
Qtd.: 1 Esp.: Fardo(s) Marca: orange Num.: 4.200 PesoB: 4.000 PesoL: 4.200

O problema é que os volumes não eram especificados na DANFE

volumes - atual

Além de mostrar incorretamente, não era possível visualizar os volumes individualmente.
Para sanar minhas duvidas, verifiquei como ocorria na DANFE do emissor gratuito de NF-e para considerar como base.

volumes - emissor gratuito

Além de informar para verificar as informações complementares, era também informado lá os detalhes de cada volume.
Com base nele, implementei essas modificações e adicionei também as informações de numeração, peso bruto e liquido.

volumes - apos correcao

FPDF The each() function is deprecated php 7.2

Não sei se é conhecimento do(s) desenvolvedor(es), está ocorrendo o seguinte erro:

referente a linha que possuí o seguinte trecho de código: while (list($file,$info) = each($this->images)) { ...

no script: nfephp-org/sped-da/src/Legacy/FPDF/Fpdf.php
está gerando esse erro:
The each() function is deprecated.
Na versão 7.2 do php

Se já for de conhecimento favor ignorar

Contribuição com o projeto

Oi @robmachado ,

estou começando a trabalhar com CTe na empresa que trabalho e estou interessado em estar colaborando com o projeto, pois nossa api é em php. Percebi que vcs passaram todos os DAs para aqui só que fui verificar as diferenças do DACTE na versão antiga (https://github.com/nfephp-org/nfephp/blob/8f0bf1d158854abff1a68560707f34f9fce4a096/libs/CTe/DacteNFePHP.class.php) e está bem diferente da que está aqui. Tem alguém trabalhando nela? Caso não tenha, quais seriam as implicações para que pudesse ajudar no desenvolvimento?

Pré-Visualizar

Olá! No sistema gratuito de emissão do estado de SP, tem uma opção de pré-visualizar o CTe, seria possível alguém desenvolver essa parte ? ( ou me ajudar a fazer )
Obrigado desde já pela atenção!
Segue abaixo um exemplo:
pre-visualizar

Arquivo XML

Olá bom dia,

A função

$xml = $nfe->getXML();

Me retorna apenas o texto do XML, mas eu preciso salvar o arquivo XML. Como posso fazer isso com a NFE 4.0?

Desde já grata.

Refatorar e incluir o FPDF

Usar o FPDF como está é INACEITÀVEL, ele não atende minimamente os padrões PSR então teria de ser refatorado para uso nessa estrutura, já incluindo as funções extras necessárias. E usando já internamente os códigos de barra fornecidos por outras fontes bem melhor estruturadas.

Classe Danfce não funcional

Estou implementando o NFCe e vi que essa classe está chamando classes do projeto antigo e uma classe QrCode que não corresponde com código implementado. Queria alguma luz sobre, por que posso até colaborar fazendo os ajustes necessários.

Caracteres com codificação HTML na impressão do DANFE

Bom dia.

Durante a geração do XML no sped-nfe alguns campos, como $emit->xNome e $dest->xNome, são limpados com a função Strings::replaceUnacceptableCharacters() do sped-common, a qual traduz alguns caracteres especiais para o seu código HTML.
Porém, ao gerar o DANFE esses caracteres nunca são retornados para sua forma original, resultando na exibição de seus códigos HTML na impressão.

Estou disposto a abrir um PR para corrigir o problema, porém gostaria de discutir a solução mais adequada.
Afim de preservar os escopos atuais, acredito que uma função para reverter esses caracteres deva ser adicionada a classe Strings do sped-common e aplicada a esses campos antes da geração de seus respectivos textboxes, ou até mesmo na própria função pTextBox para diminuir a chance de erros.

Edit: Acabo de perceber que sped-da não depende de sped-common, então acho que a solução que apresentei acima não é adequada.

Correção de Método

Olá!

Arquivo Legacy/Pdf, linha 826:

de:
$this->detLineWidth($w);

para:
$this->setLineWidth($w);

tag lota não existe no Ct-e 3.0

Prezados,

ao tentar gerar um DACTE OS (DacteOSV3), é levantado erro na linha 1488
Undefined property: NFePHP\DA\CTe\DacteOSV3::$lota,
informando ausência da proprietade $this->lota.

Acredito que a tag lota só existe na versão 2.0 do layout, e retirada em versão posterior. Posso fazer a alteração e solicitar um pull request?

Versão 3.0 - CTe

Boa Tarde, alguém sabe se o sped-da já atende a versão 3.0 do CTe ?

QRcode não esta imprimindo corretamente

Usando o exemplo da DANFC-e, o QRCode não esta imprimindo corretamente, eu preciso configurar algo para que imprima corretamente?

Segue abaixo de como ficou o QRCode impresso

image

Dacte

Na classe sped-da/src/CTe/Dacte.php na linha 195 o correto não seria toma3

Adicionar método render() na classe Danfce

Para gerar o PDF da NFC-e foi necessário copiar o método render() da classe Danfe:
public function render()
{
return $this->pdf->getPdf();
}

Desconsiderar, era só usar o método printDANFE().

Imprimir várias notas ao mesmo tempo

Bom dia amigo.

Primeiramente gostaria de agradecer pela maravilha biblioteca. Graças a ela consegui implementar um sistema gerador notas. Só estou com um probleminha... Não estou conseguindo imprimir várias notas ao mesmo tempo... Isso é possível? Você teria um exemplo de como fazer isso?

Classe Danfce não monta

Olá pessoal.

Estou utilizando o seguinte código de teste que consta como exemplo da API:

error_reporting(E_ALL);
ini_set('display_errors', 'On');

include('config/config.php');
use NFePHP\DA\NFe\Danfce;

$docxml = file_get_contents(realpath("nfces/2019-02-15T09:43:40-02:00.xml"));
$pathLogo = realpath('imgs/danfce.jpg'); //use somente imagens JPEG
$danfce = new Danfce($docxml, $pathLogo, 0);
$id = $danfce->monta();
$pdf = $danfce->render();
header('Content-Type: application/pdf');
echo $pdf;

Ele vai normalmente até a criação da Classe Danfce.

Quando gero o comando: $id = $danfce->monta(); ele me retorna um HTTP ERROR 500.

Já debuguei no terminal, porém lá não aparece erro nenhum.

Alguém pode me dar alguma luz?

Obrigado a todos pela atenção.

Grande abraço!

DACTE modal aéreo?

Olá, essa versão consegue imprimir DACTE de modal aéreo?
Nenhuma das versões que tentei imprime aéreo...
Obrigado!

Repositório composer

Olá!

Não existe o pacote "nfephp-org/sped-da" para o composer?
Existe previsão para isso?

Obrigado e parabéns pelo projeto.

Erro ao gerar o DACTE: Undefined variable: qCarga

Estou utilizando este projeto no meu trabalho, mas apresentou algumas inconsistências para alguns CTes. Ao pedir para gerar o PDF, apresenta a seguinte mensagem: Erro ao gerar o DACTE: Undefined variable: qCarga.

Debugando o código do arquivo DacteV3.php, eu vi que esse erro acontece quando vai capturar os valores de peso e quantidade da carga transportada. Segue o trecho no qual apresentam os erros:

image

A tag infQ está condicionado no if até achar o valor correspondente ao quilo (01). Só que os CTes nem sempre terão apenas 3 destas tags. Os CTes nos quais estou tendo problemas apresentam 5 tags infQ.

Ao meu olhar, o correto seria colocar esse trecho de código dentro de um loop, percorrendo todas as tags infQ, pois nunca sabemos a quantidade destas tags para cada CTe.

Eu posso estar colaborando e consertando este erro, ou alguém responsável irá rever este trecho?

Add member

Bom dia Roberto, pode me adicionar como contributor/member? Obrigado! :-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.