PROCESSAMENTO - SERIALIZACAO PARA XML ===================================== Populando fonte de dados ------------------------ >>> import datetime >>> from pynfe.entidades import Emitente, Cliente, NotaFiscal, Produto,\ ... Transportadora >>> from pynfe.entidades.fontes_dados import _fonte_dados >>> from pynfe.utils.flags import CODIGO_BRASIL Popula dependentes da NF >>> emitente = Emitente( ... cnpj='12.345.678/0001-90', ... razao_social='Tarsila Calcados Ltda.', ... nome_fantasia='Tarsila Calcados Ltda.', ... inscricao_estadual='123456789012', ... endereco_logradouro='Rua 10', ... endereco_numero='15', ... endereco_complemento='qd 17, lt 10', ... endereco_bairro='Setor Oeste', ... endereco_municipio='5208806', # Goiania ... endereco_uf='GO', ... endereco_cep='75370-000', ... endereco_telefone='6242421212', ... ) >>> cliente = Cliente( ... razao_social='Jose Felipe da Silva', ... tipo_documento='CPF', ... numero_documento='123.456.789-01', ... inscricao_estadual='9876543210', ... endereco_logradouro='AV DAS ROSAS', ... endereco_numero='1777', ... endereco_complemento='10 ANDAR', ... endereco_bairro='PARQUE FONTES', ... endereco_municipio='3304557', # Rio de Janeiro ... endereco_uf='RJ', ... endereco_pais=CODIGO_BRASIL, ... endereco_cep='23950-000', ... endereco_telefone='2132011234', ... ) >>> produto1 = Produto(codigo=1, descricao='Tenis Adidas Cinza') >>> produto2 = Produto(codigo=2, descricao='Sapato Ferracini Preto') >>> transportadora = Transportadora( ... razao_social='WS Cargas S/A', ... tipo_documento='CNPJ', ... numero_documento='123.123.123/0001-12', ... inscricao_estadual='171999999119', ... endereco_logradouro='Rua Central 100 - Fundos - Distrito Industrial', ... endereco_municipio='3304557', # Rio de Janeiro ... endereco_uf='RJ', ... ) Instancia a NF >>> nota_fiscal = NotaFiscal( ... emitente=emitente, ... transporte_transportadora=transportadora, ... modelo=55, ... serie='1', ... numero_nf='1', ... data_emissao=datetime.date.today(), ... natureza_operacao='Venda no Varejo', ... ) >>> _fonte_dados.contar_objetos() 6 Gerar arquivos XML ------------------ >>> import os >>> CUR_DIR = '.' >>> CAMINHO_SAIDA = os.path.join(CUR_DIR, 'tests', 'saida') >>> from pynfe.processamento.serializacao import SerializacaoXML >>> serializador = SerializacaoXML(_fonte_dados) Serializando por partes >>> print serializador._serializar_emitente(emitente) 12345678000190 Tarsila Calcados Ltda. Tarsila Calcados Ltda. 123456789012 Rua 10 15 qd 17, lt 10 Setor Oeste 5208806 Goianira GO 75370000 1058 Brasil 6242421212 >>> print serializador._serializar_cliente(cliente) 12345678901 Jose Felipe da Silva 9876543210 AV DAS ROSAS 1777 10 ANDAR PARQUE FONTES 3304557 Rio de Janeiro RJ 23950000 1058 Brasil 2132011234 >>> print serializador._serializar_transportadora(transportadora) 123123123000112 WS Cargas S/A 171999999119 Rua Central 100 - Fundos - Distrito Industrial 3304557 Rio de Janeiro RJ - Gera os arquivos XML a partir dos dados das instancias da NF-e - Quando gerados me lote, apenas o primeiro arquivo deve ter o cabecalho padrao do XML 1.0 - - Namespace - - A declaração do namespace da assinatura digital deverá ser realizada na própria tag , conforme exemplo abaixo. - Cada documento XML deverá ter o seu namespace individual em seu elemento raiz.