diff --git a/README b/README deleted file mode 100644 index d1b9ddd..0000000 --- a/README +++ /dev/null @@ -1,95 +0,0 @@ -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 - - ? -- 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 - disseminação da assinatura digital - - http://www.nfe.fazenda.gov.br/portal/assinador.aspx - -- 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 - diff --git a/README.md b/README.md new file mode 100644 index 0000000..476250f --- /dev/null +++ b/README.md @@ -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) + diff --git a/tests/01-basico.txt b/tests/01-basico.md similarity index 60% rename from tests/01-basico.txt rename to tests/01-basico.md index 19cd0f2..251dc62 100644 --- a/tests/01-basico.txt +++ b/tests/01-basico.md @@ -1,12 +1,12 @@ TESTES BASICOS ============== - - >>> try: - ... set - ... except: - ... from sets import Set as 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. @@ -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