Git Product home page Git Product logo

sped-nfe's Introduction

SPED-NFE

Biblioteca para geração e comunicação das NFe com as SEFAZ autorizadoras, e visa fornecer os meios para gerar, assinar e enviar os dados relativos ao projeto Sped NFe das SEFAZ.

Atualizado

  • NT 2020.006 Intermediarios
  • NT 2020.007 Evento Ator Interessado na NFe - Transportador
  • NT 2021_001 Evento de COMPROVANTE DE ENTREGA
  • NT 2021.004 v1.20 Regras de Validação e Novos Campos (válido em produção a partir de 16/05/2022)
  • NT 2023.001 v1.10 Criação e atualização de regras de validação para atender o regime de tributação monofásica do ICMS nas operações com combustíveis (válido a partir de 30/03/2023)
  • NT 2023.001 v1.20 Tributação Monofásica sobre Combustíveis (Homologação em 20/04/2023 e em produção em 01/05/2023)
  • NT 2019.001 v1.60 Criação e Atualização de Regras de Validação
  • NT 2023.004 v1.00 Evento de Conciliação Financeira (faltam eventos de Consciliação Financeira !!!)
  • NT 2023.005 v1.00 Evento de Insucesso na Entrega

NOTA: Estas NT afetam principalmente o uso do TXT para conversão em XML, mesmo que os campos ainda não sejam exigidos.

TODO: A conversão com o PADRÃO SEBRAE ainda está incompleta!!

Utilize o chat do Gitter para iniciar discussões específicas sobre o desenvolvimento deste pacote.

PHP Supported Version Actions Chat codecov

Latest Stable Version Latest Version on Packagist License Total Downloads

Issues Forks Stars

Estados atendidos

NFe (modelo 55) TODOS

NFCe (modelo 65) Todos

NFe com eCPF (emissor pessoa física)

Os estados de CE, PR e SP NÃO ACEITAM EMISSÃO com eCPF

AM e GO não foi possivel verificar por problemas na comunicação

Todos os demais estados (aparentemente) já aceitam emissão por eCPF

Este pacote é aderente com os PSR-1, PSR-2 e PSR-4. Se você observar negligências de conformidade, por favor envie um patch via pull request.

Não deixe de se cadastrar no grupo de discussão do NFePHP para acompanhar o desenvolvimento e participar das discussões e tirar dúvidas!

Install

Este pacote está listado no Packgist foi desenvolvido para uso do Composer, portanto não será explicitada nenhuma alternativa de instalação.

E deve ser instalado com:

composer require nfephp-org/sped-nfe

Ou ainda alterando o composer.json do seu aplicativo inserindo:

"require": {
    "nfephp-org/sped-nfe" : "^5.0"
}

Para utilizar o pacote em desenvolvimento (branch master) deve ser instalado com:

composer require nfephp-org/sped-nfe:dev-master

Ou ainda alterando o composer.json do seu aplicativo inserindo:

"require": {
    "nfephp-org/sped-nfe" : "dev-master"
}

NOTA: Ao utilizar este pacote na versão em desenvolvimento não se esqueça de alterar o composer.json da sua aplicação para aceitar pacotes em desenvolvimento, alterando a propriedade "minimum-stability" de "stable" para "dev".

"minimum-stability": "dev"

Requirements

Para que este pacote possa funcionar são necessários os seguintes requisitos do PHP e outros pacotes dos quais esse depende.

  • PHP 7.x (minimo PHP 7.4 veja sempre nos badges)
  • ext-curl
  • ext-dom
  • ext-json
  • ext-gd
  • ext-mbstring
  • ext-mcrypt
  • ext-openssl
  • ext-soap
  • ext-xml
  • ext-zip
  • sped-common

Para outras ações necessárias ao SPED, podem ser usados (opcionalmente) outros pacotes, como:

  • sped-da Geração dos documentos impressos (DANFE, DACTE, etc.)
  • sped-mail Envio de email com as notas e outros documentos fiscais
  • sped-ibpt Consulta dos impostos aproximados na venda a consumidor
  • sped-gnre Geração do GNRE
  • posprint Impressão de documentos em impressoras térmicas POS

Como eu faço uso desta API no meu projeto?

Primeiro, esta API faz uso dos recursos mais atuais do PHP para classes e objetos, portanto abaixo vai um exemplo ERRADO de uso:

require 'sped-nfe/src/Make.php';

$nfe = new Make();

Portanto, você deve primeiro entender que para usar esta API você precisará trabalhar com NAMESPACES pois esta API trabalha com NAMESPACES.

Agora que você sabe que NAMESPACES é requerido, o uso correto para o exemplo acima seria:

// VENDOR_DIR = pasta vendor da sua instalação composer
require VENDOR_DIR . 'autoload.php';

use NFePHP\NFe\Make;

$nfe = new Make();

Donations

Estamos em busca de doadores e patrocinadores para ajudar a financiar parte do desenvolvimento deste pacote e de outros pacotes, aqueles que estiverem interessados por favor entrem em contato com o autor pelo email [email protected]

Este é um projeto totalmente Open Source, para usá-lo, copiá-lo ou modificá-lo você não paga absolutamente nada. Porém para continuarmos a mantê-lo de forma adequada é necessária alguma contribuição seja feita, seja auxiliando na codificação, na documentação, na realização de testes e identificação de falhas e BUGs.

Mas também, caso você ache que qualquer informação obtida aqui, lhe foi útil e que isso vale algum dinheiro e está disposto a doar algo, sinta-se livre para enviar qualquer quantia, seja diretamente ao autor ou através do PayPal e do PagSeguro.

Doar com Paypal Doar PagSeguro

Acknowledgments

  • A todos os colegas que colaboram de alguma forma com o desenvolvimento contínuo desta API.
JetBrains A JetBrains pelo fornecimento de uma licença do PHPStorm um dos melhores IDE para desenvolvimento em PHP.

Documentation

O processo de documentação ainda está no inicio, mas já existem alguns documentos úteis.

Documentação

Contributing

Para contribuir com correções de BUGS, melhoria no código, documentação, elaboração de testes ou qualquer outro auxílio técnico e de programação por favor observe o CONTRIBUTING e o Código de Conduta para maiores detalhes.

Change log

Acompanhe o CHANGELOG para maiores informações sobre as alterações recentes.

Testing

Todos os testes são desenvolvidos para operar com o PHPUNIT

Security

Caso você encontre algum problema relativo a segurança, por favor envie um email diretamente aos mantenedores do pacote ao invés de abrir um ISSUE.

Credits

Roberto L. Machado (owner and developer)

License

Este pacote está diponibilizado sob LGPLv3 ou MIT License (MIT). Leia Arquivo de Licença para maiores informações.

sped-nfe's People

Contributors

abraaolevi avatar agnartus avatar andrellopes avatar dbemfica avatar eduardokum avatar ericalves avatar f3lpz avatar gersonfs avatar guicouto avatar guilherme-chinaglia avatar guilherme-santos avatar joaoroyosilva avatar jotaveultra avatar leandro-hermes avatar lidani avatar lpj145 avatar lucianoconforto avatar lukbarros avatar marcuspmd avatar newtonman avatar ogabrielsantos avatar olavocneto avatar rabraga avatar robmachado avatar serginhosant avatar sergiomatheus avatar smallsoft-gustavo avatar thmrdev avatar victorvilella avatar vieirafb 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  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

sped-nfe's Issues

Erro de validação apenas em ambiente Linux

Boa noite,
recentemente tive um problema um tanto quanto estranho.
A validação do XML falhou (em um ambiente Linux) utilizando o mesmo que código que está funcionando perfeitamente em um ambiente no MacOSX.

O ambiente linux é:
Versão do PHP: 7.1.13
Distributor ID: LinuxMint
Release: 18.1
Codename: serena

O ambiente do MacOS é:
Versão do PHP: 7.1.9
Sistema Operacional: MacOS Sierra Versão 10.12.6

O retorno da validação foi o seguinte:

This XML is not valid. Element '{http://www.portalfiscal.inf.br/nfe}cProd': [facet 'pattern'] The value '15' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[! ▶
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}cProd': '15' is not a valid value of the local atomic type.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}uCom': [facet 'pattern'] The value 'Un' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}uCom': 'Un' is not a valid value of the local atomic type.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}uTrib': [facet 'pattern'] The value 'Lt' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}uTrib': 'Lt' is not a valid value of the local atomic type.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}xPed': [facet 'pattern'] The value '16' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}xPed': '16' is not a valid value of the local atomic type.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}cProd': [facet 'pattern'] The value '56' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}cProd': '56' is not a valid value of the local atomic type.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}uCom': [facet 'pattern'] The value 'Cx' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}uCom': 'Cx' is not a valid value of the local atomic type.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}uTrib': [facet 'pattern'] The value 'Cx' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}uTrib': 'Cx' is not a valid value of the local atomic type.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}xPed': [facet 'pattern'] The value '16' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'.\n
    \n
    Element '{http://www.portalfiscal.inf.br/nfe}xPed': '16' is not a valid value of the local atomic type.\n

Ao fazer o mesmo teste no php, a validação foi executado com sucesso:

<?php
    $valor = '15';
    $valid = preg_match('/^[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}$/', $valor);
    
    if($valid){
        echo "Validou!";
    }else{
        echo "Não Validou!";
    }

leiaute 4.0

Olá,
Onde consigo o manual de orientação para leiaute compatível com a NF-e 4.0 ?
se tiveres o link para download, agradeço.

Refatoração estrutural da classe MAKE

A classe Make deverá ser refatorada com as seguintes condições:

  • os parâmetros dos métodos serão passados através de stdClass
  • os nomes dos campos do stdClass devem obedecer estritamente a nomenclatura oficial contida no manual e nas Notas Técnicas
  • a tag Totais da NFe terão seus valores totalizados de forma automática e serão usados caso não sejam passados parâmetros pelo método, e a tag será inserida na NFe mesmo se o método não for invocado
  • os parâmetros cNF e cDV serão gerados e inseridos mesmo se não forem passados pelo método
  • deverão ser separados os métodos específicos do layout 3.10 dos do layout 4.00 em classes separadas
  • todos os parâmetros e métodos devem estar "UP TO DATE" com as Notas Técnicas vide Nota Técnica 2016.002 - v 1.30

Dataset SEFAZ

Reparei que listou certs/autorizadores.list... Tem alguma mais como um CSV completo com as características de cada SEFAZ específico?

Na OKBr temos interesse em ajudar a publicar esse tipo de dataset.

Erro ao emitir nota

An error occurred while trying to communication via soap, [https://nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx] Unable to handle request without a valid action parameter. Please supply a valid soap action.

Hoje meu sistema amanheceu com este erro ao tentar emitir uma nota.
A url foi alterada ou algo assim?
Podem me ajudar ?
Desde já agradeço.

Refatoração Código

Roberto, eu andei vendo as classes e fiz uns testes, o que acha de por exemplo trocar os ifs e switchs por abordagens com funções.

Atualmente a função, e recebe tantos parâmetros
tagIMCSSN

Pode ser:

$produto->imposto()
->ICMSSN101(0, 1,25, 4.00)

o que acha?

Eu fiz uns testes aqui mais básicos como:

$this->{tagasermontada}(parametrosdatag);

e ficou muito bom, no caso da função não existir emite um erro.

NFe 4.00: erro ao consultar chave quando emissor SVRS

Ao utilizar o método sefazConsultaChave($chave, $tpAmb) da classe Tools, considerando tpAmb como 1 e emissor SVRS, tenho identificado um erro com o seguinte resposta/descrição de falha:

Unable to handle request. The action 'http://www.portalfiscal.inf.br/nfe/wsdl/NFeConsulta4/nfeConsultaNF' was not recognized.

A rotina volta a funcionar normalmente caso, no arquivo wsnfe_4.00_mod55.xml, o atributo operation da entrada NfeConsultaProtocolo for modificado de NFeConsulta4 para NFeConsultaProtocolo4 (valor idêntico ao atribuido para o mesmo elemento quando em homologação)

Busca de status para notas emitidas no Piaui

Bom dia,
Tenho uma dúvida em questão ao serviço NfeConsulta2, que busca o status da NFe.
Quando envio a requisição de uma NFe que foi emitida no Piaui recebo no xml de resposta que a UF informada não é atendida pelo webservice.
Fiz umas pesquisas aqui sobre o erro e encontrei o seguinte informativo:
http://www.sefaz.pi.gov.br/index.php/informacoes/imprensa/noticias/noticias-em-destaque/atencao-contribuintes-para-a-mudanca-mudanca-na-autorizacao-da-nf-e
Em resumo, mudaram os serviços do Piauí para o ambiente do RS (SVRS).
Achei um arquivo de autorizadores olhando a API e no Piauí ainda está SVAN. Quando mudei para SVRS o serviço NfeConsulta2 funcionou.
Será que se atualizar esse arquivo o problema do NfeConsulta2 é resolvido sem afetar os outros?

Classe Danfe

Não consigo encontrar a classe de Danfe, ela está em outro repositório?

v5.0 - Sugestão Debug Exceptions

Uma coisa que eu já encontrei observando as classes internas do nfephp é que ele tem umas classes independentes de Exceptions, e isso é bom. Mas você poderia melhorar isso, ou pelo menos facilitar esse reconhecimento por parte dos usuários sobre os tipos de Exceptions(do nfephp) disponíveis.

Ou você poderia documentar quais as Exceptions que normalmente o nfephp pode gerar, ou seja, especificar para que aqueles Exceptions personalizados servem e quando eles aparecem.

É muito incômodo ter que ficar revirando a API para descobrir essas coisas, sem contar o risco de estragar algo que estava funcionando.

Outro ponto é que vocês podiam definir um nível de log para esses Exceptions da api, colocar um identificador em algum lugar da string da Exception ou lançar essa string da Exception como um json, onde seria possível identificar o que é erro de problemas não ligados diretamente a nota ( erro de leitura de arquivos, problema de ssl) e o que são problemas realmente ligados a nota como falhas na validação, problemas de envio.

Enfim, gerar alguma forma que facilite identificar o que são erros que só nós programadores devemos saber e o que são erros que usuários podem ver, ou pelo menos documentar o que pode aparecer.

Isso é uma simples sugestão, a viabilidade disso no contexto geral, só vocês podem dizer.

Desde já obrigado pela atenção.

Tag pag para NFCe versão 3.10

Gurizada estou tendo dificuldade para emitir uma NFCe dentro do RS na versão 3.10

Estou recebendo o seguinte retorno na lib “O argumento passado não é um XML válido.”

Analisando descobri que o problema está na tag de pag do XML, hoje atualmente está assim

<pag>
    <detPag>
        <tPag>01</tPag>
        <vPag>42.34</vPag>
    </detPag>
</pag>

Fiz algumas experiências no XML alterando o para:

<pag>
    <tPag>01</tPag>
    <vPag>42.34</vPag>
</pag>

Assim ele passou na validação.

Gostaria de saber se eu estou fazendo alguma coisa de errado, ou se não seria o caso de adicionar esses dois elementos “ tPag”, “ vPag” no método:

$make->tagpag($std);

Da classe Make.

Complements::toAuthorize EnvEvento cStats diferente de 135

Bom dia,
Tenho a seguinte dúvida, não sei se isso é um problema por isso estou fazendo esse issue.

Nesse arquivo https://github.com/nfephp-org/sped-nfe/blob/v5.0/src/Complements.php#L297

Quando enviamos uma CCe ou Cancelamento por exemplo, teriamos que criar um arquivo com a requisição e o protocolo do evento, esse arquivo deve ser criado somente se o cStat for 135? se for 155 por exemplo não geramos esse arquivo?

Por que a classe joga uma exceção no caso de 155 homologado fora do prazo por exemplo...

Ou quando for cancelamento não deve criar esse protocolo de evento e somente usar Complements::cancelRegister?

Dependencias

As classes criadas pelo XSD, como sped-console, são fortemente dependentes
Poderia ser utilizado algum recurso como o Zend-ServiceManager para tratar essas dependências de forma mais elegante e transparente quando invocadas pela classe Make.php

Qual classe usar para NFe

Usar esse repositório ou usar o speed-nfe? Mas no speed-nf fala que não deve usar em produção.

Comunicação Via SOAP / PrivateKey

Após atualização hoje dos últimos branch do mês via composer. voltou a me aparecer o erro:

An error occurred while trying to communication via soap, communication via soap Unable to load client cert -8018.

Havia utilizado a solução abaixo (setEncriptPrivateKey) que não funciona mais e não achei nenhuma alteração que pudesse causar isso. Conseguem dar uma luz? Alguém teve o mesmo problema?

$soap = new SoapCurl($certificate);
$soap->setEncriptPrivateKey(false);

$tools = new Tools($configjson, $certificate);
$tools->loadSoapClass($soap);

Obrigado

v5.0 - Make remover "indPag" essa tag não mais existe no layout 4.0 da SEFAZ

public function tagide(
$cUF = '',
$cNF = '',
$natOp = '',
$indPag = '',
$mod = '',
$serie = '',
$nNF = '',
$dhEmi = '',
$dhSaiEnt = '',
$tpNF = '',
$idDest = '',
$cMunFG = '',
$tpImp = '',
$tpEmis = '',
$cDV = '',
$tpAmb = '',
$finNFe = '',
$indFinal = '0',
$indPres = '',
$procEmi = '',
$verProc = '',
$dhCont = '',
$xJust = ''
)

v5.0 - Método 'addCancelamento' da classe Complements não aceita string xml como parâmetro

Redirecionando ....
Solicitado em:

nfephp-org/nfephp#915

Estive olhando o método addCancelamento e notei que as variáveis '$pathNFefile' e '$pathCancfile', só aceitam como parâmetro um path para arquivo XML, uma sugestão seria que ele aceite também string XML, igual outras funções da mesma classe.

O outro ponto é uma sugestão/dúvida, que eu observei no manual de orientação do contribuinte é que no caso do cancelamento de nota podem ser aceitas de 1 a 20 notas por lote, mas o nfephp aceita somente 1. No meu caso isso não me afeta em nada, mas não sei se em um contexto mais geral isso seria interessante.

SAT

Olá pessoal. Por favor me tirem uma dúvida.
O sped-nfe tem integração com o SAT? Ou gera cupons fiscais?
Se não podem me indicar algum que tenha essa opção. Obrigado.

Geração de Certificado para testes em Homologação

Olá senhores,

Pesquisando a respeito dos certificados, encontrei 2 links na página to Tesouro Nacional explicando como gerar um certificado A1 para ser utilizado em ambiente de Homologação:

Estes certificados gerados como explicados nos links podem ser utilizados para geração de NF-e ou outros documentos eletrônicos ?

Erro no arquivo wsnfe_4.00_mod55.xml

Algumas cosiderações:

  • Nas linhas 27 e 34 tem um asterisco " no final na URL que está causando erro na manifestação da NFe pelo AN;
  • Na linha 34 está faltando "www." antes de nfe.fazenda.... na URL.

Importar NF-e pela Chave

Já vi o seguinte recurso em um sistema, importação da NF-e através da Chave da NFe. Gostaria de saber se no projeto já existe esse recurso, ou se não, se alguém sabe de alguma documentação desse recurso na SEFAZ. Pois esse recurso me interessa muito e estou interessado em implementar essa funcionalidade na biblioteca caso ainda não exista.

Sugestão na class NFe\Common\ValidTXT

No método isValid a variável $row poderia ser utilizar um trim, pois quando vai processar cada linha esta dando este erro "ERRO: Todas as linhas devem terminar com 'pipe'", quando da um explode esta ficando um espaço no inicio da linha e no fim " A|3.10|NFe|| "
_A.txt

tiposBasico_v4.00.xsd: Falha no Schema XML

Identifiquei uma possível situação problema no commit cc4898d que pode ser a causa de uma quebra de compatiblidade que estou enfrentando ao utilizar a biblioteca.

Essa atualização modificou o pattern de validação do tipo TString (Tipo string genérico) no arquivo tiposBasico_v4.00.xsd, sobreescrevendo uma correção/ajuste aplicada por 99a6545.

Por meio dessa alteração, o NFePHP\Common\Validator tem rejeitado alguns valores aplicados em tags do xml, rejeição essa que acontece mesmo quando os valores são válidos para o contexto em que são aplicados.

Eu identifiquei esse problema ao atribuir o valor M3 a tag uCom e ter como resultado erro de validação de schema com a seguinte mensagem.

This XML is not valid. Element '{http://www.portalfiscal.inf.br/nfe}uCom': [facet 'pattern'] The value 'M3' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'. Element '{http://www.portalfiscal.inf.br/nfe}uCom': 'M3' is not a valid value of the local atomic type. Element '{http://www.portalfiscal.inf.br/nfe}uTrib': [facet 'pattern'] The value 'M3' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'. Element '{http://www.portalfiscal.inf.br/nfe}uTrib': 'M3' is not a valid value of the local atomic type.

Observei que a partir da reaplicação do commit 99a6545 o NFePHP\Common\Validator volta a identificar o conteúdo do xml como válido.

Seria então necessário reaplicar o commit em cima da ultima atualização do arquivo?

Infos

ta madura pra usar? muda alguma coisa da anterior?

v5.0 - Make ajuste da TAG ICMS com a inclusão dos dados de FCP conforme layout 4.0 da SEFAZ

public function tagICMS(
$nItem = '',
$orig = '',
$CST = '',
$modBC = '',
$pRedBC = '',
$vBC = '',
$pICMS = '',
$vICMS = '',
$vBCFCP = '',
$pFCP = '',
$vFCP = '',
$vICMSDeson = '',
$motDesICMS = '',
$modBCST = '',
$pMVAST = '',
$pRedBCST = '',
$vBCST = '',
$pICMSST = '',
$vICMSST = '',
$vBCFCPST = '',
$pFCPST = '',
$vFCPST = ''
$pDif = '',
$vICMSDif = '',
$vICMSOp = '',
$vBCSTRet = '',
$vICMSSTRet = ''
)

Erro no arquivo wsnfe_4.00_mod65.xml

Identifiquei outro problema ao tentar cancelar um NFCe no ambiente de homologação no SVRS.
Alterando o arquivo conforme abaixo, funcionou.
Testei somente na homologação, acredito que em produção esteja com o mesmo problema.

Linhas 300 e 308
De: <RecepcaoEvento method="nfeRecepcaoEvento" operation="NFeRecepcaoEvento" version="1.00">...
Para: <RecepcaoEvento method="nfeRecepcaoEvento" operation="NFeRecepcaoEvento4" version="1.00">...

Estrutura de pastas producao/homologacao?

class Tools extends ToolsCommon

Boa tarde, a versão antiga da API já criava no construtor da classe Tools, a estrutura de pastas produção/homologação e suas subpastas de entradas, assinadas, validadas, etc...

Fiz um find por todo o código por "mkdir" e olhei os métodos e não encontrei mais nada...

A API não faz mais nenhuma operação de sistema de arquivos gravando os retornos dos webservices?

Avaliação de custo

protected function equilizeParameters(stdClass $std, $possible)

@robmachado meu caro tudo bem ? espero que sim, grande abraço pra vocês, apesar de ser chato, queria questionar o custo de tal operação inserido nesse contexto, para avaliar melhor temos cerca de 12 ou mais nós com essa função, é certo ter o objeto limpo com o que realmente é importante para o nó, porém há uma falha nessa lógica, nós passamos a utilizar standard objects para população das notas, se o usuário de alguma maneira aloca mais informação nesse objeto, ela não afetará o funcionamento da função tag especifica, haja visto que todos os objetos são requeridos por índices e muito bens sinalizados como vemos no código, então vejo eu o filtro do objeto como uma dosagem maior no custo da operação, se os referidos usuários não se importam com o que realmente é necessário para tag, não deveria ser esse o trabalho da api, estou correto ? por favor, estou a fazer a implantação do sped-nfe aqui, nessa semana acho que soltos alguns pr's com clean code e melhorias possíveis ( dentro dos meus limites). Obrigado pelo ótimo trabalho, vocês são fera!

Adição*: e pensando melhor agora, analisando a possibilidade do usuário colocar somente os dados necessários, teríamos custos sem necessidade, porque passaremos por esse laço sem objetivo.

Chave Nfe inconsistente.

$chave = preg_replace('/[^0-9]/', '', $std->Id);

Vie uma inconsistência no código, eu defino uma chave com a string 'NFe' no inicio, mas depois o código remove e então concatena de novo ?? eu to errado ?

Validação XML / Envido - vPIS, vCOFINS

Depois das atualizações do último mês. Está me ocorrendo esse problema (já estava enviando corretamente para Sefaz):

Ao validar o XML gerado com Make ele me apresenta os seguintes problemas:
'vPIS': This element is not expected. Expected is one of ( vBC )
'vCOFINS': This element is not expected. Expected is one of ( vBC )
(qBCProd, vBC tb)
Os campos são preenchidos CST 49 (empresa simples, e os campos acima zerados)

Removendo o grupo, a validação passa, mas o Sefaz recusa a nota:
745 - Rejeição: NF-e sem grupo do PIS

Houve alguma mudança nesse sentido? Obrigado!!

Quase me esqueci, schemes: PL_009_V4

Classe incorreta

A linha 240 do arquivo Convert.php utiliza a nomenclatura antiga das classe
$this->make = new MakeNFe();
Isso acaba gerando um Class not found.

Atualizando para a nomenclatura correta, o erro desaparece.
$this->make = new Make();

Cancelamento: Falha no Schema XML

Boa Tarde,

Estou testando o cancelamento de nota. Teoricamente achei que seria o mais simples. Mas não importa a forma que teste sempre me apresenta o erro:
[cStat] => 225 [xMotivo] => Rejeição: Falha no Schema XML .
Já procurei em forum, e o pessoal diz que o problema pode ser caracteres especiais na justificativa. (O que está apenas com a palavra "teste", sem espaço ou acentos, para não haver problema)
Já debuguei a API, e o retorno do XML aparentemente o que parece bem tranquilo, já que a informação passada são apenas justificativa, chave e protocolo , ver abaixo retorno: (antes da assinatura, que aparentemente também não teve problema algum):
Alguma ideia do que pode estar ocasionando o problema? Obrigado!

<evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
  <infEvento Id="ID1101113518012###388300010355001000000082140877558201">
    <cOrgao>35</cOrgao>
    <tpAmb>2</tpAmb>
    <CNPJ>###3883000103</CNPJ> (cnpj alterado propositalmente apenas aqui)
    <chNFe>3518012###3883000103550010000000821408775582</chNFe>
    <dhEvento>2018-01-08T09:36:24-02:00</dhEvento>
    <tpEvento>110111</tpEvento>
    <nSeqEvento>1</nSeqEvento>
    <verEvento>4.00</verEvento>
    <detEvento versao="4.00">
      <descEvento>Cancelamento</descEvento>
      <nProt>135180009082761</nProt>
      <xJust>teste</xJust>
    </detEvento>
  </infEvento>
</evento>

Tempo de exclusão do certificado no dir TMP

@robmachado, lembro-me que você fez uma alteração no tempo de exclusão do certificado criado no dir tmp. Você acha que seria possível adicionarmos um novo parametro no config para que esse tempo de exclusão seja controlado por lá?

Refatoração da classe Convert

A classe Convert deve ser refatorada para atender aos layouts 3.10 e 4.00, com as seguintes premissas:

  • o txt deve ser higienizado com a retirada de caracteres impróprios como [CR] e [TAB], dentre outros, antes de seu processamento
  • identificar o layout adequado e carregar a estrutura correspondente
  • os parâmetros devem ser obtidos a partir do txt e do layout da sua estrutura para criar os stdClass que serão passados para a classe Make correspondente ao layout desejado

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.