Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Melhorias nos 'exemplos' de NFe #1

Open
wants to merge 64 commits into
base: master
Choose a base branch
from

Conversation

alanjds
Copy link
Collaborator

@alanjds alanjds commented Dec 11, 2010

Arrumei algumas coisas com o Certificado. Os exemplos estão funcionando, mas o 006 (envio 2.0) não está validando o schema do SEFAZ. Aparentemente há algo de errado com o ICMS em relacão ao Simples Nacional, mas não tenho conhecimento pra arrumar isso.

Seguem minhas modificações.

Att. Alan.

alanjds and others added 30 commits December 11, 2010 17:39
- Ignorando pyc e outros arquivos, via .gitignore e .hgignore
- Criado symlink para o módulo pysped na pasta "exemplos"
(espero que o repo continue funcionando nos Windows...)
Nos exemplos:
- caminho do 'certificado.pfx' é indicado no arquivo 'certificado_caminho.txt'
- senha do certificado é indicada no arquivo 'certificado_senha.txt'

--HG--
extra : rebase_source : 3bcbfd96d1e6a07eb9d8d111535c8e302f4f7c39
Nos exemplos:
- caminho do 'certificado.pfx' é indicado no arquivo 'certificado_caminho.txt'
- senha do certificado é indicada no arquivo 'certificado_senha.txt'
- 'processo' não é uma lista nem um dicionário. Arrumado
- exemplos 001 e 005 funcionando: consultam o estado do serviço no SEFAZ
! exemplos 002 003 004 006 007 e 008 falhando (testado com Python 2.6.4 Ubuntu 9.10):

Ou apresentam o erro:

Traceback (most recent call last):
(...)
  File "/usr/local/lib/python2.6/dist-packages/xmlsec.py", line 458, in cryptoAppKeyLoad
    if ret is None: raise Error('xmlSecCryptoAppKeyLoad() failed')
xmlsec.Error: 'xmlSecCryptoAppKeyLoad() failed'

Ou o erro:

Traceback (most recent call last):
  File "003_versao_1.10_cancelar_nota.py", line 30, in <module>
    justificativa=u'Somente um teste de cancelamento')
TypeError: cancelar_nota() got an unexpected keyword argument 'protocolo'

--HG--
extra : rebase_source : 7212e2c8fa4f31ec7569cb9c57e91ba1f62afa23
- 'processo' não é uma lista nem um dicionário. Arrumado
- exemplos 001 e 005 funcionando: consultam o estado do serviço no SEFAZ
! exemplos 002 003 004 006 007 e 008 falhando (testado com Python 2.6.4 Ubuntu 9.10):

Ou apresentam o erro:

Traceback (most recent call last):
(...)
  File "/usr/local/lib/python2.6/dist-packages/xmlsec.py", line 458, in cryptoAppKeyLoad
    if ret is None: raise Error('xmlSecCryptoAppKeyLoad() failed')
xmlsec.Error: 'xmlSecCryptoAppKeyLoad() failed'

Ou o erro:

Traceback (most recent call last):
  File "003_versao_1.10_cancelar_nota.py", line 30, in <module>
    justificativa=u'Somente um teste de cancelamento')
TypeError: cancelar_nota() got an unexpected keyword argument 'protocolo'
- Usando o projeto Nosyd e o arquivo .nosy

--HG--
extra : rebase_source : 211d69070c2dd4d512d9bb1ba343317e6dff1a37
- Usando o projeto Nosyd e o arquivo .nosy
--HG--
extra : rebase_source : 8e31a1bf8b5f1f4ff86b693f14784957e28347ba
- etree e StringIO mais rápidas e genéricas

--HG--
extra : rebase_source : 7bbb5897e4acdab64b0cb052be0c8d3014501c02
- etree e StringIO mais rápidas e genéricas
- Assinar via PKCS12 apresentava erros mesmo com chaves e certificados válidos
- Trocado para PEM deixou de apresentar erros
* Utiliza arquivos temporários, mas que são tratados com a maior segurança disponível
! Não conseguindo assinar a nota em XML ainda pois está faltando o campo "Id" na tag "infNFe"

--HG--
extra : rebase_source : dd03e1169d245efaf076af18c442bc06d5a117fb
- Assinar via PKCS12 apresentava erros mesmo com chaves e certificados válidos
- Trocado para PEM deixou de apresentar erros
* Utiliza arquivos temporários, mas que são tratados com a maior segurança disponível
! Não conseguindo assinar a nota em XML ainda pois está faltando o campo "Id" na tag "infNFe"
--HG--
extra : rebase_source : 719619da1337ffc800c2164658439721512649f1
--HG--
extra : rebase_source : 78c3cd608d6b37d09b6c51cecfdce847e0d230e4
--HG--
extra : rebase_source : fd6b6404ceaacc35d99fd7eefa029ee846952554
--HG--
extra : rebase_source : 9eabfb15f4051e716e3ab9143177a89ca93beb8e
- Certificado.chave e Certificado.certificado transformados em properties para facilitar assinatura de documentos XML. Basta que o Certificado.arquivo esteja disponível
- Testes 001, 002, 003, 005 e 007 estão OK!!

--HG--
extra : rebase_source : 51beb5c384c2d94ed650c5253a11c9b74d5e9296
- Certificado.chave e Certificado.certificado transformados em properties para facilitar assinatura de documentos XML. Basta que o Certificado.arquivo esteja disponível
- Testes 001, 002, 003, 005 e 007 estão OK!!
--HG--
extra : rebase_source : 4bcf1987e9488cb33dd5259a7d31c4edfa7485c5
…ão 3

O padrão é versão 2 ou 3, mas os webservices do PR se recusam a responder
nesse caso.
Corrigida a impressão da DANFE para os casos em que é informado pagamento
a vista (incorretamente) mas são informadas duplicatas a prazo.
alanjds and others added 26 commits December 22, 2010 22:54
- Exemplo 002 atualizado para usar CNPJ e Razão Social (nome) adquiridos a partir do certificado.pfx
- CNPJ e Razão Social do emissor são adquiridos pelo Certificado.pfx
- Adicionado mapeamento de nomes de estados para abreviações
- Tem que trocar o CNPJ para o do certificado, ou será rejeitado pelo SEFAZ
…ssar o lote

Da maneira que está programado hoje, só é possível gerar a Danfe durante o processamento
do lote. Isso pois é necessária a chave que vem com recibo de processamento.

Não está implementada a geração de Danfe para notas já existentes, nas quais o recibo
de consulta retorne "100 - Autorizado o Uso".

A solução deste commit é esperar um pouco mais que o tempo médio de processamento (tMed)
e então tentar novamente, até que o processamento ocorra, e então gerar a Danfe.

Considero este um _workarround_ pois o correto seria implementar a geração de Danfe
mesmo se o Processo tiver sido enviado anteriormente.
- De qualquer forma, uso de acentos é desaconselhado pelo SEFAZ
- Pretendo arrumar depois...
@alanjds
Copy link
Collaborator Author

alanjds commented Jun 5, 2011

Adicionei mais vários bugfixes vindos de alguns colegas programadores, além de adequar à NT2011_002

@jdahlin
Copy link

jdahlin commented Jul 4, 2013

Seria legal integrar essas mudanças upstream, mas talvez vai ter que atualizar significante para passar os testes do pyflakes/pep8

@alanjds
Copy link
Collaborator Author

alanjds commented Jul 5, 2013

Acho que está tão distante que o melhor é fazer cherry-pick commit a commit.

Na verdade, no meu fork tem uns 3 ou 4 branches que "organizam melhor" algumas das fazes do PySPED, como criação dos arquivos no disco, assinatura, validação, etc... Não juntei porque isso pode quebrar a compatibilidade com os códigos atuais que usam a PySPED

mbcosta referenced this pull request in akretion/PySPED Sep 19, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants