-
Notifications
You must be signed in to change notification settings - Fork 97
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
base: master
Are you sure you want to change the base?
Conversation
- 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.
- 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...
- Exemplo 006 atualizado
Adicionei mais vários bugfixes vindos de alguns colegas programadores, além de adequar à NT2011_002 |
Seria legal integrar essas mudanças upstream, mas talvez vai ter que atualizar significante para passar os testes do pyflakes/pep8 |
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 |
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.