5 changed files with 338 additions and 4 deletions
-
8pynfe/entidades/base.py
-
53pynfe/entidades/cliente.py
-
116pynfe/entidades/produto.py
-
104tests/02-modelo-02-produto.txt
-
61tests/02-modelo-03-cliente.txt
@ -1,5 +1,11 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
class Entidade(object): |
|||
pass |
|||
def __init__(self, **kwargs): |
|||
# Codigo para dinamizar a criacao de instancias de entidade, |
|||
# aplicando os valores dos atributos na instanciacao |
|||
for k, v in kwargs: |
|||
setattr(self, k, v) |
|||
|
|||
class Lote(object): |
|||
pass |
|||
|
|||
@ -1,5 +1,56 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from base import Entidade |
|||
|
|||
TIPOS_DOCUMENTO = ( |
|||
'CNPJ', |
|||
'CPF', |
|||
) |
|||
|
|||
class Cliente(Entidade): |
|||
pass |
|||
# Dados do Cliente |
|||
# - Nome/Razão Social (obrigatorio) |
|||
razao_social = str() |
|||
|
|||
# - Tipo de Documento (obrigatorio) - default CNPJ - TIPOS_DOCUMENTO |
|||
tipo_documento = 'CNPJ' |
|||
|
|||
# - Numero do Documento (obrigatorio) |
|||
numero_documento = str() |
|||
|
|||
# - Inscricao Estadual |
|||
inscricao_estadual = str() |
|||
|
|||
# - Inscricao SUFRAMA |
|||
inscricao_suframa = str() |
|||
|
|||
# - Isento do ICMS (Sim/Nao) |
|||
isento_icms = False |
|||
|
|||
# Endereco |
|||
# - Logradouro (obrigatorio) |
|||
endereco_logradouro = str() |
|||
|
|||
# - Numero (obrigatorio) |
|||
endereco_numero = str() |
|||
|
|||
# - Complemento |
|||
endereco_complemento = str() |
|||
|
|||
# - Bairro (obrigatorio) |
|||
endereco_bairro = str() |
|||
|
|||
# - CEP |
|||
endereco_cep = str() |
|||
|
|||
# - Pais (seleciona de lista) |
|||
endereco_pais = 'BRASIL' |
|||
|
|||
# - UF (obrigatorio) |
|||
endereco_uf = str() |
|||
|
|||
# - Municipio (obrigatorio) |
|||
endereco_municipio = str() |
|||
|
|||
# - Telefone |
|||
endereco_telefone = str() |
|||
|
|||
@ -1,5 +1,119 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from base import Entidade |
|||
|
|||
from decimal import Decimal |
|||
|
|||
class Produto(Entidade): |
|||
pass |
|||
# Dados do Produto |
|||
# - Descricao (obrigatorio) |
|||
descricao = str() |
|||
|
|||
# - Codigo (obrigatorio) - nao pode ser alterado quando em edicao |
|||
codigo = str() |
|||
|
|||
# - EAN |
|||
ean = str() |
|||
|
|||
# - EAN Unid. Tributavel |
|||
ean_unidade_tributavel = str() |
|||
|
|||
# - EX TIPI |
|||
ex_tipi = str() |
|||
|
|||
# - Genero |
|||
genero = str() |
|||
|
|||
# - NCM |
|||
ncm = str() |
|||
|
|||
# - Unid. Com. |
|||
unidade_comercial = str() |
|||
|
|||
# - Valor Unitario Com. |
|||
valor_unitario_comercial = Decimal() |
|||
|
|||
# - Unid. Trib. |
|||
unidade_tributavel = str() |
|||
|
|||
# - Qtd. Trib. |
|||
quantidade_tributavel = Decimal() |
|||
|
|||
# - Valor Unitario Trib. |
|||
valor_unitario_tributavel = Decimal() |
|||
|
|||
# Impostos |
|||
# - ICMS (lista 1 para * / ManyToManyField) |
|||
icms = None |
|||
|
|||
# - IPI |
|||
# - Classe de Enquadramento (cigarros e bebidas) |
|||
ipi_classe_enquadramento = str() |
|||
|
|||
# - Codigo de Enquadramento Legal |
|||
ipi_codigo_enquadramento_legal = str() |
|||
|
|||
# - CNPJ do Produtor |
|||
ipi_cnpj_produtor = str() |
|||
|
|||
def __init__(self, *args, **kwargs): |
|||
self.icms = [] |
|||
|
|||
def adicionar_icms(self, **kwargs): |
|||
u"""Adiciona uma instancia de ICMS a lista de ICMS do produto""" |
|||
self.icms.append(ProdutoICMS(**kwargs)) |
|||
|
|||
ICMS_TIPOS_TRIBUTACAO = ( |
|||
('00', 'ICMS 00 - Tributada integralmente'), |
|||
('10', 'ICMS 10 - Tributada com cobranca do ICMS por substituicao tributaria'), |
|||
('20', 'ICMS 20 - Com reducao da base de calculo'), |
|||
('30', 'ICMS 30 - Isenta ou nao tributada e com cobranca do ICMS por substituicao tributaria'), |
|||
('40', 'ICMS 40 - Isenta'), |
|||
('41', 'ICMS 41 - Nao tributada'), |
|||
('50', 'ICMS 50 - Suspensao'), |
|||
('51', 'ICMS 51 - Diferimento'), |
|||
('60', 'ICMS 60 - Cobrado anteriormente por substituicao tributaria'), |
|||
('70', 'ICMS 70 - Com reducao da base de calculo e cobranca do ICMS por substituicao tributaria'), |
|||
('90', 'ICMS 90 - Outras'), |
|||
) |
|||
|
|||
ICMS_ORIGENS = ( |
|||
'Nacional', |
|||
'Estrangeira - Importacao Direta', |
|||
'Estrangeira - Adquirida no Mercado Interno', |
|||
) |
|||
|
|||
ICMS_MODALIDADES = ( |
|||
'Margem Valor Agregado', |
|||
'Pauta (valor)', |
|||
'Preco Tabelado Max. (valor)', |
|||
'Valor da Operacao', |
|||
) |
|||
|
|||
class ProdutoICMS(Entidade): |
|||
# - Tipo de Tributacao (seleciona de lista) - ICMS_TIPOS_TRIBUTACAO |
|||
tipo_tributacao = str() |
|||
|
|||
# - Origem (seleciona de lista) - ICMS_ORIGENS |
|||
origem = str() |
|||
|
|||
# - Modalidade de determinacao da Base de Calculo (seleciona de lista) - ICMS_MODALIDADES |
|||
modalidade = str() |
|||
|
|||
# - Aliquota ICMS |
|||
aliquota = Decimal() |
|||
|
|||
# - Percentual de reducao da Base de Calculo |
|||
percentual_reducao = Decimal() |
|||
|
|||
# - Modalidade de determinacao da Base de Calculo do ICMS ST (seleciona de lista) - ICMS_MODALIDADES |
|||
st_modalidade = str() |
|||
|
|||
# - Aliquota ICMS ST |
|||
st_aliquota = Decimal() |
|||
|
|||
# - Percentual de reducao do ICMS ST |
|||
st_percentual_reducao = Decimal() |
|||
|
|||
# - Percentual da margem de Valor Adicionado ICMS ST |
|||
st_percentual_margem_valor_adicionado = Decimal() |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue