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
desconto = Decimal() 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 (obrigatorio)
valor_total_bruto = Decimal() 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 (seleciona de lista) - NF_PRODUTOS_ESPECIFICOS
produto_especifico = str() produto_especifico = str()

28
pynfe/processamento/serializacao.py

@ -416,3 +416,31 @@ class SerializacaoPipes(Serializacao):
] ]
return '|'.join(serial_data) 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 #!/usr/bin/env python
# *-* encoding: utf8 *-* # *-* encoding: utf8 *-*
from decimal import Decimal
from pynfe.entidades.cliente import Cliente from pynfe.entidades.cliente import Cliente
from pynfe.entidades.emitente import Emitente 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.entidades.fonte_dados import _fonte_dados
from pynfe.processamento.serializacao import SerializacaoPipes from pynfe.processamento.serializacao import SerializacaoPipes
from pynfe.utils.flags import CODIGO_BRASIL from pynfe.utils.flags import CODIGO_BRASIL
@ -13,8 +15,8 @@ serializador = SerializacaoPipes(_fonte_dados, homologacao=True)
emitente = Emitente( emitente = Emitente(
razao_social='Spring Publicacoes Ltda', razao_social='Spring Publicacoes Ltda',
cnpj='08234482000156', 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_logradouro='RUA FERREIRA DE ARAUJO',
endereco_numero='202', endereco_numero='202',
endereco_complemento='9o andar - cj 91/92', endereco_complemento='9o andar - cj 91/92',
@ -31,7 +33,7 @@ cliente = Cliente(
razao_social='MARIANA CARVALHO SILVA', razao_social='MARIANA CARVALHO SILVA',
tipo_documento='CPF', #CPF ou CNPJ tipo_documento='CPF', #CPF ou CNPJ
email='email@email.com', email='email@email.com',
numero_documento='12345678900',
numero_documento='12345678900', # numero do cpf ou cnpj
endereco_logradouro='Rua dos Bobos', endereco_logradouro='Rua dos Bobos',
endereco_numero='Zero', endereco_numero='Zero',
endereco_complemento='Ao lado de lugar nenhum', endereco_complemento='Ao lado de lugar nenhum',
@ -44,11 +46,24 @@ cliente = Cliente(
) )
print serializador._serializar_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