Browse Source

Serializacao do campo I do produto

tags/0.1
Sergio Oliveira 13 years ago
parent
commit
adf2d3c422
  1. 12
      pynfe/entidades/notafiscal.py
  2. 28
      pynfe/processamento/serializacao.py
  3. 35
      test.py

12
pynfe/entidades/notafiscal.py

@ -428,9 +428,21 @@ class NotaFiscalProduto(Entidade):
# - Desconto
desconto = Decimal()
# - Outras despesas acessórias
outras_despesas_acessorias = Decimal()
# - Indica se valor do Item (vProd) entra no valor total da NF-e
compoe_valor_total = 1
# - Valor total bruto (obrigatorio)
valor_total_bruto = Decimal()
# - Número do Pedido de Compra
numero_pedido = str()
# - Item do Pedido de Compra
numero_do_item = str()
# - Produto especifico (seleciona de lista) - NF_PRODUTOS_ESPECIFICOS
produto_especifico = str()

28
pynfe/processamento/serializacao.py

@ -416,3 +416,31 @@ class SerializacaoPipes(Serializacao):
]
return '|'.join(serial_data)
def _serializar_produto_servico(self, produto_servico):
serial_data = [
'I',
produto_servico.codigo,
produto_servico.ean,
produto_servico.descricao,
produto_servico.ncm,
produto_servico.ex_tipi,
produto_servico.cfop,
produto_servico.unidade_comercial,
str(produto_servico.quantidade_comercial),
str(produto_servico.valor_unitario_comercial),
str(produto_servico.valor_total_bruto),
produto_servico.ean_tributavel,
produto_servico.unidade_tributavel,
str(produto_servico.quantidade_tributavel),
str(produto_servico.valor_unitario_tributavel),
str(produto_servico.total_frete),
str(produto_servico.total_seguro),
str(produto_servico.desconto),
str(produto_servico.outras_despesas_acessorias),
str(produto_servico.compoe_valor_total),
produto_servico.numero_pedido,
produto_servico.numero_do_item,
'\nM',
]
return '|'.join(serial_data)

35
test.py

@ -1,9 +1,11 @@
#!/usr/bin/env python
# *-* encoding: utf8 *-*
from decimal import Decimal
from pynfe.entidades.cliente import Cliente
from pynfe.entidades.emitente import Emitente
from pynfe.entidades.notafiscal import NotaFiscal
from pynfe.entidades.notafiscal import NotaFiscal, NotaFiscalProduto
from pynfe.entidades.fonte_dados import _fonte_dados
from pynfe.processamento.serializacao import SerializacaoPipes
from pynfe.utils.flags import CODIGO_BRASIL
@ -13,8 +15,8 @@ serializador = SerializacaoPipes(_fonte_dados, homologacao=True)
emitente = Emitente(
razao_social='Spring Publicacoes Ltda',
cnpj='08234482000156',
codigo_de_regime_tributario='3',
inscricao_estadual='149431130117',
codigo_de_regime_tributario='3', # 1 para simples nacional ou 3 para normal
inscricao_estadual='149431130117', # numero de IE da empresa
endereco_logradouro='RUA FERREIRA DE ARAUJO',
endereco_numero='202',
endereco_complemento='9o andar - cj 91/92',
@ -31,7 +33,7 @@ cliente = Cliente(
razao_social='MARIANA CARVALHO SILVA',
tipo_documento='CPF', #CPF ou CNPJ
email='email@email.com',
numero_documento='12345678900',
numero_documento='12345678900', # numero do cpf ou cnpj
endereco_logradouro='Rua dos Bobos',
endereco_numero='Zero',
endereco_complemento='Ao lado de lugar nenhum',
@ -44,11 +46,24 @@ cliente = Cliente(
)
print serializador._serializar_cliente(cliente)
nota_fiscal = NotaFiscal(
emitente=emitente,
cliente=cliente,
produto = NotaFiscalProduto(
codigo='000328', # id do produto (000328 era o id no antigo sistemas de assinatura)
descricao='Assinatura Rolling Stone',
ncm='49029000', # categoria international do prod (sempre esse para assinaturas)
cfop='6922',
unidade_comercial='UN',
quantidade_comercial=Decimal('12'), # 12 unidades (12 revistas)
valor_unitario_comercial=Decimal('9.75'),
valor_total_bruto=Decimal('117.00'),
unidade_tributavel='UN',
quantidade_tributavel=Decimal('12'),
valor_unitario_tributavel=Decimal('9.75'),
numero_pedido='12345', # id da ordem
numero_do_item='12345328', # id do item (pode ser o id do produto concatenado com o do pedido)
)
print serializador._serializar_produto_servico(produto)
import pprint
pprint.pprint(emitente.__dict__)
pprint.pprint(cliente.__dict__)
#nota_fiscal = NotaFiscal(
# emitente=emitente,
# cliente=cliente,
#)
Loading…
Cancel
Save