You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
388 lines
11 KiB
388 lines
11 KiB
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,
|
|
... cliente=cliente,
|
|
... uf='GO',
|
|
... modelo=55,
|
|
... serie='1',
|
|
... numero_nf='1',
|
|
... data_emissao=datetime.date.today(),
|
|
... data_saida_entrada=datetime.date.today(),
|
|
... natureza_operacao='Venda a vista',
|
|
... forma_pagamento=0,
|
|
... tipo_impressao_danfe=1, # Retrato
|
|
... forma_emissao=1, # Normal
|
|
... finalidade_emissao=1,
|
|
... municipio='3550308',
|
|
... codigo_numerico_aleatorio='51800512',
|
|
... dv_codigo_numerico_aleatorio='3',
|
|
... )
|
|
|
|
>>> _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, homologacao=True)
|
|
|
|
Serializando por partes
|
|
|
|
>>> print serializador._serializar_emitente(emitente)
|
|
<emit>
|
|
<CNPJ>12345678000190</CNPJ>
|
|
<xNome>Tarsila Calcados Ltda.</xNome>
|
|
<xFant>Tarsila Calcados Ltda.</xFant>
|
|
<IE>123456789012</IE>
|
|
<enderEmit>
|
|
<xLgr>Rua 10</xLgr>
|
|
<nro>15</nro>
|
|
<xCpl>qd 17, lt 10</xCpl>
|
|
<xBairro>Setor Oeste</xBairro>
|
|
<cMun>5208806</cMun>
|
|
<xMun>Goianira</xMun>
|
|
<UF>GO</UF>
|
|
<CEP>75370000</CEP>
|
|
<cPais>1058</cPais>
|
|
<xPais>Brasil</xPais>
|
|
<fone>6242421212</fone>
|
|
</enderEmit>
|
|
</emit>
|
|
<BLANKLINE>
|
|
|
|
>>> print serializador._serializar_cliente(cliente)
|
|
<dest>
|
|
<CPF>12345678901</CPF>
|
|
<xNome>Jose Felipe da Silva</xNome>
|
|
<IE>9876543210</IE>
|
|
<enderDest>
|
|
<xLgr>AV DAS ROSAS</xLgr>
|
|
<nro>1777</nro>
|
|
<xCpl>10 ANDAR</xCpl>
|
|
<xBairro>PARQUE FONTES</xBairro>
|
|
<cMun>3304557</cMun>
|
|
<xMun>Rio de Janeiro</xMun>
|
|
<UF>RJ</UF>
|
|
<CEP>23950000</CEP>
|
|
<cPais>1058</cPais>
|
|
<xPais>Brasil</xPais>
|
|
<fone>2132011234</fone>
|
|
</enderDest>
|
|
</dest>
|
|
<BLANKLINE>
|
|
|
|
>>> print serializador._serializar_transportadora(transportadora)
|
|
<transporta>
|
|
<CNPJ>123123123000112</CNPJ>
|
|
<xNome>WS Cargas S/A</xNome>
|
|
<IE>171999999119</IE>
|
|
<xEnder>Rua Central 100 - Fundos - Distrito Industrial</xEnder>
|
|
<cMun>3304557</cMun>
|
|
<xMun>Rio de Janeiro</xMun>
|
|
<UF>RJ</UF>
|
|
</transporta>
|
|
<BLANKLINE>
|
|
|
|
- Gera os arquivos XML a partir dos dados das instancias da NF-e
|
|
|
|
>>> print nota_fiscal.identificador_unico
|
|
NFe52100112345678000190550010000000011518005123
|
|
|
|
>>> print serializador._serializar_notas_fiscal(nota_fiscal)
|
|
<infNFe versao="1.10" Id="NFe52100112345678000190550010000000011518005123">
|
|
<ide>
|
|
<cUF>52</cUF>
|
|
<cNF>51800512</cNF>
|
|
<natOp>Venda a vista</natOp>
|
|
<indPag>0</indPag>
|
|
<mod>55</mod>
|
|
<serie>1</serie>
|
|
<nNF>1</nNF>
|
|
<dEmi>2010-01-13</dEmi>
|
|
<dSaiEnt>2010-01-13</dSaiEnt>
|
|
<tpNF>0</tpNF>
|
|
<cMunFG>3550308</cMunFG>
|
|
<tpImp>1</tpImp>
|
|
<tpEmis>1</tpEmis>
|
|
<cDV>3</cDV>
|
|
<tpAmb>2</tpAmb>
|
|
<finNFe>1</finNFe>
|
|
<procEmi>0</procEmi>
|
|
<verProc>PyNFe 0.1</verProc>
|
|
</ide>
|
|
<emit>
|
|
<CNPJ>12345678000190</CNPJ>
|
|
<xNome>Tarsila Calcados Ltda.</xNome>
|
|
<xFant>Tarsila Calcados Ltda.</xFant>
|
|
<IE>123456789012</IE>
|
|
<enderEmit>
|
|
<xLgr>Rua 10</xLgr>
|
|
<nro>15</nro>
|
|
<xCpl>qd 17, lt 10</xCpl>
|
|
<xBairro>Setor Oeste</xBairro>
|
|
<cMun>5208806</cMun>
|
|
<xMun>Goianira</xMun>
|
|
<UF>GO</UF>
|
|
<CEP>75370000</CEP>
|
|
<cPais>1058</cPais>
|
|
<xPais>Brasil</xPais>
|
|
<fone>6242421212</fone>
|
|
</enderEmit>
|
|
</emit>
|
|
<dest>
|
|
<CPF>12345678901</CPF>
|
|
<xNome>Jose Felipe da Silva</xNome>
|
|
<IE>9876543210</IE>
|
|
<enderDest>
|
|
<xLgr>AV DAS ROSAS</xLgr>
|
|
<nro>1777</nro>
|
|
<xCpl>10 ANDAR</xCpl>
|
|
<xBairro>PARQUE FONTES</xBairro>
|
|
<cMun>3304557</cMun>
|
|
<xMun>Rio de Janeiro</xMun>
|
|
<UF>RJ</UF>
|
|
<CEP>23950000</CEP>
|
|
<cPais>1058</cPais>
|
|
<xPais>Brasil</xPais>
|
|
<fone>2132011234</fone>
|
|
</enderDest>
|
|
</dest>
|
|
<retirada>
|
|
<CNPJ>99171171000194</CNPJ>
|
|
<xLgr>AV PAULISTA</xLgr>
|
|
<nro>12345</nro>
|
|
<xCpl>TERREO</xCpl>
|
|
<xBairro>CERQUEIRA CESAR</xBairro>
|
|
<cMun>3550308</cMun>
|
|
<xMun>SAO PAULO</xMun>
|
|
<UF>SP</UF>
|
|
</retirada>
|
|
<entrega>
|
|
<CNPJ>99299299000194</CNPJ>
|
|
<xLgr>AV FARIA LIMA</xLgr>
|
|
<nro>1500</nro>
|
|
<xCpl>15 ANDAR</xCpl>
|
|
<xBairro>PINHEIROS</xBairro>
|
|
<cMun>3550308</cMun>
|
|
<xMun>SAO PAULO</xMun>
|
|
<UF>SP</UF>
|
|
</entrega>
|
|
<det nItem="1">
|
|
<prod>
|
|
<cProd>00001</cProd>
|
|
<cEAN />
|
|
<xProd>Agua Mineral</xProd>
|
|
<CFOP>5101</CFOP>
|
|
<uCom>dz</uCom>
|
|
<qCom>1000000.0000</qCom>
|
|
<vUnCom>1</vUnCom>
|
|
<vProd>10000000.00</vProd>
|
|
<cEANTrib />
|
|
<uTrib>und</uTrib>
|
|
<qTrib>12000000.0000</qTrib>
|
|
<vUnTrib>1</vUnTrib>
|
|
</prod>
|
|
<imposto>
|
|
<ICMS>
|
|
<ICMS00>
|
|
<orig>0</orig>
|
|
<CST>00</CST>
|
|
<modBC>0</modBC>
|
|
<vBC>10000000.00</vBC>
|
|
<pICMS>18.00</pICMS>
|
|
<vICMS>1800000.00</vICMS>
|
|
</ICMS00>
|
|
</ICMS>
|
|
<PIS>
|
|
<PISAliq>
|
|
<CST>01</CST>
|
|
<vBC>10000000.00</vBC>
|
|
<pPIS>0.65</pPIS>
|
|
<vPIS>65000</vPIS>
|
|
</PISAliq>
|
|
</PIS>
|
|
<COFINS>
|
|
<COFINSAliq>
|
|
<CST>01</CST>
|
|
<vBC>10000000.00</vBC>
|
|
<pCOFINS>2.00</pCOFINS>
|
|
<vCOFINS>200000.00</vCOFINS>
|
|
</COFINSAliq>
|
|
</COFINS>
|
|
</imposto>
|
|
</det>
|
|
<det nItem="2">
|
|
<prod>
|
|
<cProd>00002</cProd>
|
|
<cEAN />
|
|
<xProd>Agua Mineral</xProd>
|
|
<CFOP>5101</CFOP>
|
|
<uCom>pack</uCom>
|
|
<qCom>5000000.0000</qCom>
|
|
<vUnCom>2</vUnCom>
|
|
<vProd>10000000.00</vProd>
|
|
<cEANTrib />
|
|
<uTrib>und</uTrib>
|
|
<qTrib>3000000.0000</qTrib>
|
|
<vUnTrib>0.3333</vUnTrib>
|
|
</prod>
|
|
<imposto>
|
|
<ICMS>
|
|
<ICMS00>
|
|
<orig>0</orig>
|
|
<CST>00</CST>
|
|
<modBC>0</modBC>
|
|
<vBC>10000000.00</vBC>
|
|
<pICMS>18.00</pICMS>
|
|
<vICMS>1800000.00</vICMS>
|
|
</ICMS00>
|
|
</ICMS>
|
|
<PIS>
|
|
<PISAliq>
|
|
<CST>01</CST>
|
|
<vBC>10000000.00</vBC>
|
|
<pPIS>0.65</pPIS>
|
|
<vPIS>65000</vPIS>
|
|
</PISAliq>
|
|
</PIS>
|
|
<COFINS>
|
|
<COFINSAliq>
|
|
<CST>01</CST>
|
|
<vBC>10000000.00</vBC>
|
|
<pCOFINS>2.00</pCOFINS>
|
|
<vCOFINS>200000.00</vCOFINS>
|
|
</COFINSAliq>
|
|
</COFINS>
|
|
</imposto>
|
|
</det>
|
|
<total>
|
|
<ICMSTot>
|
|
<vBC>20000000.00</vBC>
|
|
<vICMS>18.00</vICMS>
|
|
<vBCST>0</vBCST>
|
|
<vST>0</vST>
|
|
<vProd>20000000.00</vProd>
|
|
<vFrete>0</vFrete>
|
|
<vSeg>0</vSeg>
|
|
<vDesc>0</vDesc>
|
|
<vII>0</vII>
|
|
<vIPI>0</vIPI>
|
|
<vPIS>130000.00</vPIS>
|
|
<vCOFINS>400000.00</vCOFINS>
|
|
<vOutro>0</vOutro>
|
|
<vNF>20000000.00</vNF>
|
|
</ICMSTot>
|
|
</total>
|
|
<transp>
|
|
<modFrete>0</modFrete>
|
|
<transporta>
|
|
<CNPJ>123123123000112</CNPJ>
|
|
<xNome>WS Cargas S/A</xNome>
|
|
<IE>171999999119</IE>
|
|
<xEnder>Rua Central 100 - Fundos - Distrito Industrial</xEnder>
|
|
<cMun>3304557</cMun>
|
|
<xMun>Rio de Janeiro</xMun>
|
|
<UF>RJ</UF>
|
|
</transporta>
|
|
<veicTransp>
|
|
<placa>BXI1717</placa>
|
|
<UF>SP</UF>
|
|
<RNTC>123456789</RNTC>
|
|
</veicTransp>
|
|
<reboque>
|
|
<placa>BXI1818</placa>
|
|
<UF>SP</UF>
|
|
<RNTC>123456789</RNTC>
|
|
</reboque>
|
|
<vol>
|
|
<qVol>10000</qVol>
|
|
<esp>CAIXA</esp>
|
|
<marca>LINDOYA</marca>
|
|
<nVol>500</nVol>
|
|
<pesoL>1000000000.000</pesoL>
|
|
<pesoB>1200000000.000</pesoB>
|
|
<lacres>
|
|
<nLacre>XYZ10231486</nLacre>
|
|
</lacres>
|
|
</vol>
|
|
</transp>
|
|
<infAdic>
|
|
<infAdFisco>Nota Fiscal de exemplo NF-eletronica.com</infAdFisco>
|
|
</infAdic>
|
|
</infNFe>
|
|
<BLANKLINE>
|
|
|
|
- Quando gerados me lote, apenas o primeiro arquivo deve ter o cabecalho
|
|
padrao do XML 1.0
|
|
- <?xml version="1.0" encoding="UTF-8"?>
|
|
- Namespace
|
|
- <NFe xmlns=”http://www.portalfiscal.inf.br/nfe” >
|
|
- A declaração do namespace da assinatura digital deverá ser realizada na
|
|
própria tag <Signature>, conforme exemplo abaixo.
|
|
- Cada documento XML deverá ter o seu namespace individual em seu elemento raiz.
|
|
|