Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 0 additions & 95 deletions README

This file was deleted.

76 changes: 76 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
Visão Geral
-----------

Biblioteca de interface com o webservice de Nota Fiscal Eletronica,
da SEFAZ, oficializada pelo Ministerio da Fazendo do Governo do
Brasil.

A NF-e visa substituir as notas fiscais séries 1 e 1A

Dependências
------------

- *[Geraldo Reports](http://geraldo.sourceforge.net/)*
- para a geração da DANFE
- *lxml*
- biblioteca de leitura e gravação de arquivos XML, de alta
performance e fácil de implementar.
- *openssl*
- biblioteca para manuseio e trafego de dados criptografados
- manuseio de protocolo ssl/tls
- *MS CAPICOM*
- evitar seu uso, usar somente se obrigatório
- *XmlSEC*
- assinatura e validação do XML

Referências
-----------

[Site oficial da Nota Fiscal eletrônica](http://www.nfe.fazenda.gov.br/portal/)

[Noções gerais da NF-e](http://pt.wikipedia.org/wiki/Nota_fiscal_eletrônica)

Componente para Delphi ACBrNFe
- http://acbr.sourceforge.net/drupal/?q=node/36
- http://devmedia.com.br/articles/viewcomp.asp?comp=12237

[Exemplos de arquivos XML](http://nf-eletronica.com/blog/?p=77)

[Exemplos de consumação do WebService](http://nf-eletronica.com/blog/?p=75)

[Tutorial e outras documentações](http://www.icert.com.br/gestor/tutoriais/conteudo/15,0_Nota-Fiscal-Eletronica-NF-e.html)

[Manual oficial de integração](http://www.nfe.fazenda.gov.br/portal/integracao.aspx)

[Schemas para validação dos arquivos](http://www.nfe.fazenda.gov.br/portal/schemas.aspx)

[Criação de certificados X.509 com OpenVPN](http://www.guiadohardware.net/tutoriais/openvpn_2/pagina2.html)
- verificar se pode ser usado para testes sem ter um certificado oficial

[Assinador](http://www.nfe.fazenda.gov.br/portal/assinador.aspx)
- disseminação da assinatura digital

[Planilha com CNAEs obrigadas a emitir NF-e](http://portalnfe.fazenda.mg.gov.br/downloads/CNAEs_Obrigadas_NFe_061009.xls)

[Visualizador Documento Fiscal Eletrônico (NF-e e CT-e)](http://www.nfe.fazenda.gov.br/portal/visualizador.aspx)

[Texto sobre Python + SOAP + SSL + NF-e](http://victorpoluceno.blogspot.com/2008/03/python-ssl-certificado-digital.html)

[Tutorial de lxml](http://codespeak.net/lxml/tutorial.html)

[Validao de XML via XSD no lxml](http://codespeak.net/lxml/validation.html#xmlschema)

[Geracao de codigos de barra Code128 no Python](http://barcode128.blogspot.com/2007/03/code128py.html)

[Descricao do Code128 na Wikipedia](http://en.wikipedia.org/wiki/Code_128)

[Documentação do módulo de geração de Code128 no ReportLab](http://www.reportlab.com/apis/reportlab/reportlab.graphics.barcode.code128-module.html)

[Exemplo de codigo de barras da DANF-e usando ReportLab](http://pastebin.com/f17b153a8)

[Thread da lista pyhton-brasil sobre streching do codigo de barras](http://br.groups.yahoo.com/group/python-brasil/message/41299)

[Lista de codigos para campo EX TIPI](http://www.fisconet.com.br/ipi/tipi/04.htm)

[Certificado para testes](http://nf-eletronica.com/blog/?p=133)

138 changes: 68 additions & 70 deletions tests/01-basico.txt → tests/01-basico.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
TESTES BASICOS
==============

>>> try:
... set
... except:
... from sets import Set as set
<type 'set'>

```python
try:
set
except:
from sets import Set as set

```
A biblioteca deve fornecer uma colecao de utilitarios para consumir
o webservice da NF-e.

Expand All @@ -15,77 +15,75 @@ Componentes

A separacao entre os componentes da biblioteca deve seguir o seguinte
modelo:

***MODELO DE ENTIDADES***

| ------------ -------------- |
| | Entidade |-------<>| FonteDados | |
| ------------ -------------- |
| A |
| | |
| ----especializacao-------------------------- |
| | | | | |
| ------------ ----------- ----------- ------------------ |
| | Emitente | | Produto | | Cliente | | Transportadora | |
| ------------ ----------- ----------- ------------------ |
| *| *| *| *| |
| ------------------------------associacao---- |
| | |
| V* |
| --------------- ---------------- |
| | Nota Fiscal |------<>| Lote de NF-e | |
| --------------- 1 * ---------------- |
| |


---------------------------------------------------------------------
| MODELO DE ENTIDADES |
---------------------------------------------------------------------
| |
| ------------ -------------- |
| | Entidade |-------<>| FonteDados | |
| ------------ -------------- |
| A |
| | |
| ----especializacao-------------------------- |
| | | | | |
| ------------ ----------- ----------- ------------------ |
| | Emitente | | Produto | | Cliente | | Transportadora | |
| ------------ ----------- ----------- ------------------ |
| *| *| *| *| |
| ------------------------------associacao---- |
| | |
| V* |
| --------------- ---------------- |
| | Nota Fiscal |------<>| Lote de NF-e | |
| --------------- 1 * ---------------- |
| |
---------------------------------------------------------------------


----------------------------------------------------------------------------
| PROCESSAMENTO |
----------------------------------------------------------------------------
| |
| ------------------ -------------- -------------------------------- |
| | Serializacao | | DANFE | | Comunicacao | |
| ------------------ -------------- -------------------------------- |
| | exportar() | | imprimir() | | transmitir() | |
| | importar() | -------------- | cancelar() | |
| ------------------ | situacao_nfe() | |
| | status_servico() | |
| ---------------------- | consultar_cadastro() | |
| | Validacao | | inutilizar_faixa_numeracao() | |
| ---------------------- -------------------------------- |
| | validar_arquivo() | |
| | validar_xml() | |
| | validar_etree() | ---------------------- |
| | validar_objetos() | | Assinatura | |
| ---------------------- ---------------------- |
| | assinar_arquivo() | |
| | assinar_xml() | |
| | assinar_etree() | |
| | assinar_objetos() | |
| ---------------------- |
----------------------------------------------------------------------------


***PROCESSAMENTO***

| ------------------ -------------- -------------------------------- |
| | Serializacao | | DANFE | | Comunicacao | |
| ------------------ -------------- -------------------------------- |
| | exportar() | | imprimir() | | transmitir() | |
| | importar() | -------------- | cancelar() | |
| ------------------ | situacao_nfe() | |
| | status_servico() | |
| ---------------------- | consultar_cadastro() | |
| | Validacao | | inutilizar_faixa_numeracao() | |
| ---------------------- -------------------------------- |
| | validar_arquivo() | |
| | validar_xml() | |
| | validar_etree() | ---------------------- |
| | validar_objetos() | | Assinatura | |
| ---------------------- ---------------------- |
| | assinar_arquivo() | |
| | assinar_xml() | |
| | assinar_etree() | |
| | assinar_objetos() | |
| ---------------------- |


Os pacotes da biblioteca sao:

- utils (contem todas as funcionalidades utilitarias dentro da
biblioteca, incluindo flags e funcoes genericas)

>>> from pynfe import utils
>>> set([attr for attr in dir(utils) if not attr.startswith('__')]) >= set(['flags'])
True
```python
from pynfe import utils
set([attr for attr in dir(utils) if not attr.startswith('__')]) >= set(['flags'])
```

- entidades (contem todas as entidades da biblioteca)

>>> from pynfe import entidades
>>> set([attr for attr in dir(entidades) if not attr.startswith('__')]) == set([
... 'Cliente', 'Emitente', 'LoteNotaFiscal', 'NotaFiscal', 'Produto',
... 'Transportadora', 'base', 'cliente', 'emitente', 'lotes', 'notafiscal',
... 'produto', 'transportadora', 'fonte_dados', '_fonte_dados','certificado',
... 'CertificadoA1'])
True

```python
from pynfe import entidades
set([attr for attr in dir(entidades) if not attr.startswith('__')]) == set(['Cliente', 'Emitente', 'LoteNotaFiscal'
, 'NotaFiscal', 'Produto', 'Transportadora'
, 'base', 'cliente', 'emitente', 'lotes'
, 'notafiscal', 'produto', 'transportadora'
, 'fonte_dados', '_fonte_dados','certificado'
, 'CertificadoA1'])
```

- processamento (contem todas as funcionalidades de processamento da
biblioteca

Expand Down