nfephp-org / sped-mdfe Goto Github PK
View Code? Open in Web Editor NEWAPI para geração e comunicação dos MDFe com as SEFAZ autorizadoras
License: Other
API para geração e comunicação dos MDFe com as SEFAZ autorizadoras
License: Other
A lib já está pronta para emissão no modo síncrona, com as mudanças da NT 2024/001 ?
Na função tagtot do script Make.php, deve-se implementar a correção da composição do campo considerando:
de:
_$std->qNFe = count($this->infNFe);
para:
$std->qNFe = count($this->infNFe[0]);
Garantindo assim que seja considerado a quantidade correta de NFe associadas ao MDFe
Estou passando por um erro estranho.
A tag "veicTracao", exige na documentação os campos: placa, tara, condutor, tpRod, tpCar e UF
Consegui gerar o XML, mas não assina, apresentando a seguinte mensagem:
This XML is not valid. Element '{http://www.portalfiscal.inf.br/mdfe}tpRod': This element is not expected.
Informa que "tpRod" não é esperado, mas verificando o arquivo mdfeModalRodoviario_v3.00.xsd verificamos que o tpRod está lá, normal.
Qual a saída nesse caso?
Segue abaixo a tag "infModal" gerada
<infModal versaoModal="3.00">
<rodo>
<infANTT>
<RNTRC>05743107</RNTRC>
<infContratante>
<CNPJ>89478957438759</CNPJ>
</infContratante>
</infANTT>
<veicTracao>
<placa>HVV1234</placa>
<tara>8350</tara>
<tpRod>06</tpRod>
<tpCar>02</tpCar>
<UF>CE</UF>
</veicTracao>
</rodo>
</infModal>
Boa tarde, na função sefazEvento do arquivo Tools.php está sendo tratado somente o emitente com CNPJ, para fazer funcionar o envio fiz as adaptações:
Retirar todas funções relativas a impressão das classes pois ficará por responsabilidade do projeto sped-da.
Estou tentando baixar o xml da mdf-e consultando pela chave conforme abaixo. Mas obviamente o response apenas traz dados do evento em si.
Como é possivel gerar o xml completo para depois eu gerar o damdfe?
$response = $nfe->sefazConsultaChave($chave);
Somente esse projeto tem a função sefazEvento
da classe Tools como protected
, o que impossibilita a implementação de novos eventos de forma 'avulsa'. Por exemplo, se eu quiser implementar a manifestação do evento '110116', '110117' ou '110118' não consigo, pois o método não permite ser acessado de fora da classe. Poderiam fazer essa mudança por gentilileza?
Estou enfrentando dificuldades ao tentar inserir um evento de encerramento em um MDFe. Após encerrar o MDFe, estou recebendo apenas o infEvento na resposta. Estou usando duas funções públicas dentro da classe Complements, a toAuthorize e a cancelRegister, mas não estou conseguindo incluir o evento de encerramento. Você poderia me fornecer um exemplo de como adicionar esse evento ao XML, o XML de encerramento deve conter o protocolo de encerramento necessário para a averbação.
esta versão já esta fazendo para 3.00 ?
Ocorre erro de cabecalho [Rejeição: Cabecalho - Versao do arquivo XML não suportada] ao realizar consulta de não encerrados pelo webservices do RS.
Estou fazendo testes com a biblioteca para uma possível implementação em um cliente e me deparei com o erro do título no momento de Encerramento de uma MDF-e, (consegui gerar MDF-e pela biblioteca). Teria como passar um parecer, baseado na sua experiência dos possíveis motivos desse erro retornar? Na internet existem pouquíssimos documentos sobre MDF-e e os que tem não são satisfatórios para essa finalidade!!!
Fiz a comparação do meu XML com o apresentado nesse link, os dois XMLs são exatamente iguais.
Desde já agradeço!!!
Olá,
Estou montando um XML do MDF-e, porém ao informar apenas um documento, entrou na validação abaixo e não gerou o documento.
if (($tpEmit == 1 || $tpEmit == 3) && empty($this->infLotacao) && ($this->contaDoc($this->infCTe) + $this->contaDoc($this->infNFe) + $this->contaDoc($this->infMDFeTransp)) == 1) {
$this->errors[] = "Tag infLotacao é obrigatória quando só existir um Documento informado!";
}
Na norma técnica 2020.20 página 10 encontrei o seguinte:
Se modal rodoviário e Tipo Emitente for igual a Prestador de Serviço de Transporte
(tpEmit=1) ou transportador que emitirá CT-e globalizado (tpEmit=3) e MDF-e possuir
apenas um DF-e transportado no grupo infDoc:
O grupo de informações da carga lotação (infLotacao) deve estar informado
Observação: regra de validação aplicável em produção a partir de 06/07/2020
[COVID-19]
Facult. 726 Rej.
Está marcando como facultativo, fiz um teste enviando sem essa tag nos moldes dessa validação e enviou normal. Gostaria de saber se está de acordo isso que mencionei.
Grato!
_
Enviar a release v2.0 funcionar
Retirar dependência do composer na versão layout 3.0 "zendframework/zend-mail": "^2.5",
Notei que não foi atribuído autorizadores para modelo 58 na classe BaseTools.
https://github.com/nfephp-org/sped-common/blob/master/src/Base/BaseTools.php#L609
Fiquei com dúvidas sobre o $alias estar fixo para RS se $tipo == 'mdfe'
https://github.com/nfephp-org/sped-common/blob/master/src/Base/BaseTools.php#L651
Por fim, o problema que encontrei é que quando chega na linha 650 dá erro, pois não existe $autorizadores['58']
$alias = $autorizadores[$this->modelo][$siglaUF];
Como podemos trabalhar nisso?
Boa tarde pessoal
Alguém já ajustou a versão própria para a 3.00a? Com QR-code?
Abs
Conforme layout do MDF-e a tag RNTRC (do emitente) não é obrigatória:
Porém no componente, ao gerar o MDF-e, temos o seguinte trecho:
Ou seja, vemos que é verificado se a tag infANTT está preenchida e em seguida é capturado o RNTRC.
Porém se for informado um CIOT ou Contratante no MDF-e a tag infANTT estará preenchida, mas o RNTRC poderá não estar informado no XML.
Com isso o componente gera uma exceção com a seguinte mensagem:
"Trying to get property 'nodeValue' of non-object"
Pois ele está tentando capturar o RNTRC mesmo quando não está informado.
Com isso deve ser feito uma melhoria para validar realmente se o campo RNTRC estiver preenchido, captura-lo caso contrário não capturar, exemplo que fiz:
Aguardo retorno.
Bom dia.
Gostaria de agradecer pelo excelente trabalho nesta biblioteca. No caso encerramento do MDF-e preciso pegar todo o XML de encerramento assinado. Como faço isso?
Obrigado desde ja
Fala pessoal, eu baixei a versão de desenvolvimento implementei o que faltava para o mdf-e funcionar na versão 3.00 mas, gostaria de saber quais os requisitos para o PR não ser rejeitado?
Ao adicionar vários documentos (NFe|CTe) para um mesmo manifesto, para cada um, uma tag <infMunDescarga>
é inserida. Quando dois ou mais documentos têm o mesmo município como descarga, o manifesto é rejeitado tal como exemplificado aqui.
Pessoal a versão 2.0 desse pacote está aderente a legislação atual ou se deve usar apenas o 3.0 quando sair?
Bom dia, tudo bem? Estamos enfrentando problemas ao montar a tag do código de agendamento do porto no MDF-e, sempre que chamo a função ele da a seguinte mensagem
Não sei se tem uma ordem certa para passar essa campo, ou se tem algo que deveria chamar antes, tentei verificar pela classe mas não achei nada
Estou utilizando a versão 4.1 da biblio
Desde ja agradeço e no aguardo
No sped-nfe v.5.0.x foram estruturadas uma série de classes com atribuições separadas, o ideal é que este projeto observe as mesmas, pois no momento em que os três projetos estiverem sincronizados e totalmente compatíveis, essas classes auxiliares poderão ser inclusive migradas para o sped-common, deixando o projeto mais enxuto.
Classes importantes que deveriam existir neste projeto:
1 - Complements::class
2 - Convert::class
3 - Common/(várias)
4 - Factories/(várias)
Bom dia
Acredito ter encontrado um bug na lib. Ao tentar enviar um manifesto rodoviario que o campo tpEmit está com valor 2 está dando o erro “Grupo produto predominante deve ser informado para modal rodoviário”
Seguindo esse link
Percebi que esse erro só poderia aparecer se o tpEmit fosse 1 ou 3, por isso estou enviando uma Pull Request com uma sugestão para a correção desse problema.
Boa tarde pessoal!
Estou começando com MDFe e CTe, tenho um cliente que gostaria de emitir MDFe (rodoviário), eu achei que era necessário ele usar o CTe também, mas pelo que pesquisei é possível usar apenas o MDFe.
Alguém já fez uma forma de adicionar várias NFes/CTes a um MDFe?
Vou seguir meus testes, e se encontrar pontos para melhoria/exemplo vou contribuir.
Obrigado
Boa noite,
Estou atualizando as minhas bibliotecas usando o composer, e reparei que não estou conseguindo a MDFE, depois que atualizei as do NFe, podem me ajudar?
C:\Users\user\Desktop>composer require nfephp-org/sped-mdfe
PHP Warning: Module 'openssl' already loaded in Unknown on line 0
Warning: Module 'openssl' already loaded in Unknown on line 0
PHP Warning: Module 'openssl' already loaded in Unknown on line 0
Warning: Module 'openssl' already loaded in Unknown on line 0
Using version ^2.0 for nfephp-org/sped-mdfe
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for nfephp-org/sped-mdfe ^2.0 -> satisfiable by nfephp-org/sped-mdfe[v2.0].
- nfephp-org/sped-mdfe v2.0 requires nfephp-org/sped-common ^4.1 -> satisfiable by nfephp-org/sped-common[v4.1.0, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.13, v4.1.14, v4.1.15, v4.1.2, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9, v4.1.x-dev] but these conflict with your requirements or minimum-stability.
Installation failed, reverting ./composer.json to its original content.
Boa tarde, tenho uma dúvida referente ao novo campo vAdiant no grupo Comp da Nota Técnica 2021.002 referente a adequação do grupo Pagamento.
Conforme a nota publicada, o novo campo vAdiant pertence ao grupo Comp, mas na classe Make.php o novo campo vAdiant está vinculado ao grupo infPag, então na hora de montar o xml da mdfe, não consigo incluir o novo campo vAdiant na tag do grupo Comp, hoje é só possível vincular o campo vAdiant ao grupo infPag, seria necessário uma alteração na classe Make.php para resolver isso?
Não estou conseguindo incluir/fazer update pra versao 3.0 no composer.
O erro é:
Problem 1
- nfephp-org/sped-mdfe v3.0.x-dev requires nfephp-org/sped-console dev-develop -> no matching package found.
- nfephp-org/sped-mdfe v3.0.x-dev requires nfephp-org/sped-console dev-develop -> no matching package found.
- Installation request for nfephp-org/sped-mdfe v3.0.x-dev -> satisfiable by nfephp-org/sped-mdfe[v3.0.x-dev].
Acho que o branch dev-develop não existe mais no repo sped-console, mas o json ainda aponta pra ele. Eu estou usando os repos git no composer.
No caso seria só modificar o arquivo composer.json pra dev-master
em nfe-php/sped-console
?
Acho que vou fazer um fork e mudar isso pra já poder começar a testar. Se der certo eu mando um PR com essa modificação.
Primeiramente, parabéns pelo projeto!
Segundo, a biblioteca está habilitada para uso? Vi do README que esta apenas em testes.
Desde já agradeço!
alguém saberia o motivo do erro?
ele acontece ao tentar enviar o MDF-e
Código em questão:
public function transmitir($signXml)
{
try {
$resp = $this->tools->sefazEnviaLote([$signXml], rand(1, 10000));
$st = new Standardize();
$std = $st->toStd($resp);
sleep(3);
$recibo = $std->infRec->nRec;
$resp = $this->tools->sefazConsultaRecibo($recibo);
$std = $st->toStd($resp);
if (!isset($std->protMDFe)) {
return [
'erro' => true,
'message' => 'Tente enviar novamente em minutos!',
'cStat' => '999'
];
}
}
Boa tarde, no sped-nfe tem um método pra verificar o código ean, será que não conseguíamos implementar no sped-mdfe pra verificar o código ean do produto predominante?
Roberto, como esta o andamento em relação o MDF, ta precisando de ajuda em que?
Olá, quando teremos uma versão estável para instalação?
Ao executar o método Make::montaMDFe() é lançada uma exceção de objeto não instanciado.
Ao verificar a possível causa desse erro foi identificado que ao executar o método Make::zTagInfDoc() a classe já adiciona a quantidade de documentos vinculados (NFe, CTe, MDFe Transporte), porém caso ao adicionar a tag Make::tagTot() e não informar ou não hover totais para algum dos documentos é lançado o erro.
A versao estavel 4.1.0 da MDF-e esta mais antiga que a permitida pela receita, estamos usando a DEV-MASTER para produção. Teria como atualizar a versao estavel?
Bom dia a todos! Gostaria de saber se alguém está trabalhando no código para gerar o pdf.
Boa tarde, gostaria de utilizar o projeto e sendo assim vou ajudar no desenvolvimento para que possamos gerar uma verão estável. Ainda estou estudando o código e sobre o próprio MDF-e, mas me surgiu uma dúvida: os padrões de desenvolvimentos deverão ser seguidos igual ao restante do projeto? Como já citei, ainda estou estudando mas vi algumas diferenças em relação ao restante, como por exemplo, os parâmetros passados para gerar as tags do XML estão recebendo cada informação sendo passada individualmente, isso será ajustado para receber uma stdClass também?
Boa tarde pessoal
Alguém já ajustou a versão própria para a 3.00a? Com QR-code?
Abs
As classes
Tools
Make
devem ser refatoradas para usar a versão v5.0 do sped-common, desta forma garante compatibilidade com o sped-nfe.
Pontos importantes, do sped-common:
1 - Certificate::class
2 - Signer::class
3 - DomImproved::class
4 - Keys::class
5 - Soap/SoapCurl::class
Minha sugestão é refatorar enquanto está em dev ou passa esse banch v3.0, para master e subir um release, temporariamente e abrir um novo branch v.4.0 para essa refatoração que irá com certeza quebrar a compatibilidade com as versões anteriores.
Boa noite galera,
Sou novo no mundo fiscal e estou com uma dúvida sobre o sped-mdfe.
Já tenho implementado o sped-nfe só que o meu sped-common instalado no projeto esta com uma versão acima da que o sped-mdfe precisa. Tem alguma forma de utiliza os 2 no mesmo projeto?
Segui o erro quando dou o "composer require nfephp-org/sped-mdfe" ->
Problem 1
- Installation request for nfephp-org/sped-mdfe ^2.0 -> satisfiable by nfephp-org/sped-mdfe[v2.0].
- Conclusion: remove nfephp-org/sped-common v5.0.30
- Conclusion: don't install nfephp-org/sped-common v5.0.30
- nfephp-org/sped-mdfe v2.0 requires nfephp-org/sped-common ^4.1 -> satisfiable by nfephp-org/sped-common[v4.1.0, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.13, v4.1.14, v4.1.15, v4.1.2, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9, v4.1.x-dev].
- Can only install one of: nfephp-org/sped-common[v4.1.0, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.1, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.10, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.11, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.12, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.13, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.14, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.15, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.2, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.3, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.4, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.5, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.6, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.7, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.8, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.9, v5.0.30].
- Can only install one of: nfephp-org/sped-common[v4.1.x-dev, v5.0.30].
- Installation request for nfephp-org/sped-common (locked at v5.0.30) -> satisfiable by nfephp-org/sped-common[v5.0.30].
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.