Skip to content

Instantly share code, notes, and snippets.

@rvalyi
Created March 1, 2019 14:10
Show Gist options
  • Save rvalyi/a6a33486533d15621c784c82682905d1 to your computer and use it in GitHub Desktop.
Save rvalyi/a6a33486533d15621c784c82682905d1 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
#
# Generated Fri Mar 1 04:51:31 2019 by generateDS.py(Akretion's branch).
# Python 3.6.7 (default, Oct 22 2018, 11:32:17) [GCC 8.2.0]
#
import textwrap
from odoo import fields
from .. import spec_models
# """Código de Regime Tributário.
# Este campo será obrigatoriamente preenchido com:"""
CRTType = [
("1", "1 – Simples Nacional"),
("2", "2 – Simples Nacional – excesso de sublimite de receita bruta"),
("3", "3 – Regime Normal."),
]
CSOSNType = [
("101", """101- Tributada pelo Simples Nacional com permissão de crédito.
(v.2.0)"""),
]
CSOSNType32 = [
("102", """102- Tributada pelo Simples Nacional sem permissão de
crédito."""),
("103", """103 – Isenção do ICMS no Simples Nacional para faixa de receita
bruta."""),
("300", "300 – Imune."),
("400", "400 – Não tributda pelo Simples Nacional (v.2.0) (v.2.0)"),
]
CSOSNType33 = [
("201", """201- Tributada pelo Simples Nacional com permissão de crédito e
com cobrança do ICMS por Substituição Tributária (v.2.0)"""),
]
CSOSNType35 = [
("202", """202- Tributada pelo Simples Nacional sem permissão de crédito e
com cobrança do ICMS por Substituição Tributária"""),
("203", """203- Isenção do ICMS nos Simples Nacional para faixa de receita
bruta e com cobrança do ICMS por Substituição Tributária
(v.2.0)"""),
]
# """500 – ICMS cobrado anterirmente por substituição tributária
# (substituído) ou por antecipação
# (v.2.0)"""
CSOSNType37 = [
("500", "500"),
]
# "Tributação pelo ICMS 900 - Outros(v2.0)"
CSOSNType38 = [
("900", "900"),
]
# "Tributção pelo ICMS"
CSTType = [
("00", "00 - Tributada integralmente"),
]
# "Tributção pelo ICMS"
CSTType10 = [
("20", "20 - Com redução de base de cálculo"),
]
# "Tributção pelo ICMS"
CSTType12 = [
("30", """30 - Isenta ou não tributada e com cobrança do ICMS por
substituição tributária"""),
]
# """Tributação pelo ICMS
# 40 - Isenta
# 41 - Não tributada
# 50 - Suspensão
# 51 - Diferimento"""
CSTType15 = [
("40", "40"),
("41", "41"),
("50", "50"),
]
# """Tributção pelo ICMS
# 20 - Com redução de base de cálculo"""
CSTType17 = [
("51", "51"),
]
# "Tributação pelo ICMS"
CSTType19 = [
("60", "60 - ICMS cobrado anteriormente por substituição tributária"),
]
# "Tributção pelo ICMS"
CSTType20 = [
("70", """70 - Com redução de base de cálculo e cobrança do ICMS por
substituição tributária"""),
]
# "Tributção pelo ICMS"
CSTType24 = [
("90", "90 - Outras"),
]
# "Tributação pelo ICMS"
CSTType28 = [
("10", """10 - Tributada e com cobrança do ICMS por substituição
tributária"""),
("90", "90 – Outros."),
]
# "Tributção pelo ICMS"
CSTType31 = [
("41", "41-Não Tributado."),
("60", "60-Cobrado anteriormente por substituição tributária."),
]
# "Código de Situação Tributária do PIS."
CSTType41 = [
("01", """01 – Operação Tributável - Base de Cálculo = Valor da Operação
Alíquota Normal (Cumulativo/Não Cumulativo)"""),
("02", """02 - Operação Tributável - Base de Calculo = Valor da Operação
(Alíquota Diferenciada)"""),
]
# "Código de Situação Tributária do PIS."
CSTType42 = [
("03", """03 - Operação Tributável - Base de Calculo = Quantidade Vendida
x Alíquota por Unidade de Produto"""),
]
# "Código de Situação Tributária do PIS."
CSTType43 = [
("04", """04 - Operação Tributável - Tributação Monofásica - (Alíquota
Zero)"""),
("05", "05 - Operação Tributável (ST)"),
("06", "06 - Operação Tributável - Alíquota Zero"),
("07", "07 - Operação Isenta da contribuição"),
("08", "08 - Operação Sem Incidência da contribuição"),
("09", "09 - Operação com suspensão da contribuição"),
]
# """Código de Situação Tributária do PIS.
# 99 - Outras Operações."""
CSTType44 = [
("49", "49"),
("50", "50"),
("51", "51"),
("52", "52"),
("53", "53"),
("54", "54"),
("55", "55"),
("56", "56"),
("60", "60"),
("61", "61"),
("62", "62"),
("63", "63"),
("64", "64"),
("65", "65"),
("66", "66"),
("67", "67"),
("70", "70"),
("71", "71"),
("72", "72"),
("73", "73"),
("74", "74"),
("75", "75"),
("98", "98"),
("99", "99"),
]
# "Código de Situação Tributária do COFINS."
CSTType45 = [
("01", """01 – Operação Tributável - Base de Cálculo = Valor da Operação
Alíquota Normal (Cumulativo/Não Cumulativo)"""),
("02", """02 - Operação Tributável - Base de Calculo = Valor da Operação
(Alíquota Diferenciada)"""),
]
# "Código de Situação Tributária do COFINS."
CSTType46 = [
("03", """03 - Operação Tributável - Base de Calculo = Quantidade Vendida
x Alíquota por Unidade de Produto"""),
]
# "Código de Situação Tributária do COFINS:"
CSTType47 = [
("04", """04 - Operação Tributável - Tributação Monofásica - (Alíquota
Zero)"""),
("05", "05 - Operação Tributável (ST)"),
("06", "06 - Operação Tributável - Alíquota Zero"),
("07", "07 - Operação Isenta da contribuição"),
("08", "08 - Operação Sem Incidência da contribuição"),
("09", "09 - Operação com suspensão da contribuição"),
]
# "Código de Situação Tributária do COFINS:"
CSTType48 = [
("49", "49 - Outras Operações de Saída"),
("50", """50 - Operação com Direito a Crédito - Vinculada Exclusivamente a
Receita Tributada no Mercado Interno"""),
("51", """51 - Operação com Direito a Crédito – Vinculada Exclusivamente a
Receita Não Tributada no Mercado Interno"""),
("52", """52 - Operação com Direito a Crédito - Vinculada Exclusivamente a
Receita de Exportação"""),
("53", """53 - Operação com Direito a Crédito - Vinculada a Receitas
Tributadas e Não-Tributadas no Mercado Interno"""),
("54", """54 - Operação com Direito a Crédito - Vinculada a Receitas
Tributadas no Mercado Interno e de Exportação"""),
("55", """55 - Operação com Direito a Crédito - Vinculada a Receitas Não-
Tributadas no Mercado Interno e de Exportação"""),
("56", """56 - Operação com Direito a Crédito - Vinculada a Receitas
Tributadas e Não-Tributadas no Mercado Interno, e de
Exportação"""),
("60", """60 - Crédito Presumido - Operação de Aquisição Vinculada
Exclusivamente a Receita Tributada no Mercado Interno"""),
("61", """61 - Crédito Presumido - Operação de Aquisição Vinculada
Exclusivamente a Receita Não-Tributada no Mercado Interno"""),
("62", """62 - Crédito Presumido - Operação de Aquisição Vinculada
Exclusivamente a Receita de Exportação"""),
("63", """63 - Crédito Presumido - Operação de Aquisição Vinculada a
Receitas Tributadas e Não-Tributadas no Mercado Interno"""),
("64", """64 - Crédito Presumido - Operação de Aquisição Vinculada a
Receitas Tributadas no Mercado Interno e de Exportação"""),
("65", """65 - Crédito Presumido - Operação de Aquisição Vinculada a
Receitas Não-Tributadas no Mercado Interno e de Exportação"""),
("66", """66 - Crédito Presumido - Operação de Aquisição Vinculada a
Receitas Tributadas e Não-Tributadas no Mercado Interno, e de
Exportação"""),
("67", "67 - Crédito Presumido - Outras Operações"),
("70", "70 - Operação de Aquisição sem Direito a Crédito"),
("71", "71 - Operação de Aquisição com Isenção"),
("72", "72 - Operação de Aquisição com Suspensão"),
("73", "73 - Operação de Aquisição a Alíquota Zero"),
("74", "74 - Operação de Aquisição sem Incidência da Contribuição"),
("75", "75 - Operação de Aquisição por Substituição Tributária"),
("98", "98 - Outras Operações de Entrada"),
("99", "99 - Outras Operações."),
]
# "Código da Situação Tributária do IPI:"
CSTType70 = [
("00", "00-Entrada com recuperação de crédito"),
("49", "49 - Outras entradas"),
("50", "50-Saída tributada"),
("99", "99-Outras saídas"),
]
# "Código da Situação Tributária do IPI:"
CSTType71 = [
("01", "01-Entrada tributada com alíquota zero"),
("02", "02-Entrada isenta"),
("03", "03-Entrada não-tributada"),
("04", "04-Entrada imune"),
("05", "05-Entrada com suspensão"),
("51", "51-Saída tributada com alíquota zero"),
("52", "52-Saída isenta"),
("53", "53-Saída não-tributada"),
("54", "54-Saída imune"),
("55", "55-Saída com suspensão"),
]
CSTType8 = [
("10", """10 - Tributada e com cobrança do ICMS por substituição
tributária"""),
]
# "Tipo Ambiente"
TAmb = [
("1", "1"),
("2", "2"),
]
# "Tipo Código da Lista de Serviços LC 116/2003"
TCListServ = [
("01.01", "01.01"),
("01.02", "01.02"),
("01.03", "01.03"),
("01.04", "01.04"),
("01.05", "01.05"),
("01.06", "01.06"),
("01.07", "01.07"),
("01.08", "01.08"),
("02.01", "02.01"),
("03.02", "03.02"),
("03.03", "03.03"),
("03.04", "03.04"),
("03.05", "03.05"),
("04.01", "04.01"),
("04.02", "04.02"),
("04.03", "04.03"),
("04.04", "04.04"),
("04.05", "04.05"),
("04.06", "04.06"),
("04.07", "04.07"),
("04.08", "04.08"),
("04.09", "04.09"),
("04.10", "04.10"),
("04.11", "04.11"),
("04.12", "04.12"),
("04.13", "04.13"),
("04.14", "04.14"),
("04.15", "04.15"),
("04.16", "04.16"),
("04.17", "04.17"),
("04.18", "04.18"),
("04.19", "04.19"),
("04.20", "04.20"),
("04.21", "04.21"),
("04.22", "04.22"),
("04.23", "04.23"),
("05.01", "05.01"),
("05.02", "05.02"),
("05.03", "05.03"),
("05.04", "05.04"),
("05.05", "05.05"),
("05.06", "05.06"),
("05.07", "05.07"),
("05.08", "05.08"),
("05.09", "05.09"),
("06.01", "06.01"),
("06.02", "06.02"),
("06.03", "06.03"),
("06.04", "06.04"),
("06.05", "06.05"),
("07.01", "07.01"),
("07.02", "07.02"),
("07.03", "07.03"),
("07.04", "07.04"),
("07.05", "07.05"),
("07.06", "07.06"),
("07.07", "07.07"),
("07.08", "07.08"),
("07.09", "07.09"),
("07.10", "07.10"),
("07.11", "07.11"),
("07.12", "07.12"),
("07.13", "07.13"),
("07.16", "07.16"),
("07.17", "07.17"),
("07.18", "07.18"),
("07.19", "07.19"),
("07.20", "07.20"),
("07.21", "07.21"),
("07.22", "07.22"),
("08.01", "08.01"),
("08.02", "08.02"),
("09.01", "09.01"),
("09.02", "09.02"),
("09.03", "09.03"),
("10.01", "10.01"),
("10.02", "10.02"),
("10.03", "10.03"),
("10.04", "10.04"),
("10.05", "10.05"),
("10.06", "10.06"),
("10.07", "10.07"),
("10.08", "10.08"),
("10.09", "10.09"),
("10.10", "10.10"),
("11.01", "11.01"),
("11.02", "11.02"),
("11.03", "11.03"),
("11.04", "11.04"),
("12.01", "12.01"),
("12.02", "12.02"),
("12.03", "12.03"),
("12.04", "12.04"),
("12.05", "12.05"),
("12.06", "12.06"),
("12.07", "12.07"),
("12.08", "12.08"),
("12.09", "12.09"),
("12.10", "12.10"),
("12.11", "12.11"),
("12.12", "12.12"),
("12.13", "12.13"),
("12.14", "12.14"),
("12.15", "12.15"),
("12.16", "12.16"),
("12.17", "12.17"),
("13.02", "13.02"),
("13.03", "13.03"),
("13.04", "13.04"),
("13.05", "13.05"),
("14.01", "14.01"),
("14.02", "14.02"),
("14.03", "14.03"),
("14.04", "14.04"),
("14.05", "14.05"),
("14.06", "14.06"),
("14.07", "14.07"),
("14.08", "14.08"),
("14.09", "14.09"),
("14.10", "14.10"),
("14.11", "14.11"),
("14.12", "14.12"),
("14.13", "14.13"),
("15.01", "15.01"),
("15.02", "15.02"),
("15.03", "15.03"),
("15.04", "15.04"),
("15.05", "15.05"),
("15.06", "15.06"),
("15.07", "15.07"),
("15.08", "15.08"),
("15.09", "15.09"),
("15.10", "15.10"),
("15.11", "15.11"),
("15.12", "15.12"),
("15.13", "15.13"),
("15.14", "15.14"),
("15.15", "15.15"),
("15.16", "15.16"),
("15.17", "15.17"),
("15.18", "15.18"),
("16.01", "16.01"),
("17.01", "17.01"),
("17.02", "17.02"),
("17.03", "17.03"),
("17.04", "17.04"),
("17.05", "17.05"),
("17.06", "17.06"),
("17.08", "17.08"),
("17.09", "17.09"),
("17.10", "17.10"),
("17.11", "17.11"),
("17.12", "17.12"),
("17.13", "17.13"),
("17.14", "17.14"),
("17.15", "17.15"),
("17.16", "17.16"),
("17.17", "17.17"),
("17.18", "17.18"),
("17.19", "17.19"),
("17.20", "17.20"),
("17.21", "17.21"),
("17.22", "17.22"),
("17.23", "17.23"),
("17.24", "17.24"),
("17.25", "17.25"),
("18.01", "18.01"),
("19.01", "19.01"),
("20.01", "20.01"),
("20.02", "20.02"),
("20.03", "20.03"),
("21.01", "21.01"),
("22.01", "22.01"),
("23.01", "23.01"),
("24.01", "24.01"),
("25.01", "25.01"),
("25.02", "25.02"),
("25.03", "25.03"),
("25.04", "25.04"),
("26.01", "26.01"),
("27.01", "27.01"),
("28.01", "28.01"),
("29.01", "29.01"),
("30.01", "30.01"),
("31.01", "31.01"),
("32.01", "32.01"),
("33.01", "33.01"),
("34.01", "34.01"),
("35.01", "35.01"),
("36.01", "36.01"),
("37.01", "37.01"),
("38.01", "38.01"),
("39.01", "39.01"),
("40.01", "40.01"),
]
# "Tipo Código de orgão (UF da tabela do IBGE + 90 RFB)"
TCOrgaoIBGE = [
("11", "11"),
("12", "12"),
("13", "13"),
("14", "14"),
("15", "15"),
("16", "16"),
("17", "17"),
("21", "21"),
("22", "22"),
("23", "23"),
("24", "24"),
("25", "25"),
("26", "26"),
("27", "27"),
("28", "28"),
("29", "29"),
("31", "31"),
("32", "32"),
("33", "33"),
("35", "35"),
("41", "41"),
("42", "42"),
("43", "43"),
("50", "50"),
("51", "51"),
("52", "52"),
("53", "53"),
("90", "90"),
("91", "91"),
("92", "92"),
]
# "Tipo Código da UF da tabela do IBGE"
TCodUfIBGE = [
("11", "11"),
("12", "12"),
("13", "13"),
("14", "14"),
("15", "15"),
("16", "16"),
("17", "17"),
("21", "21"),
("22", "22"),
("23", "23"),
("24", "24"),
("25", "25"),
("26", "26"),
("27", "27"),
("28", "28"),
("29", "29"),
("31", "31"),
("32", "32"),
("33", "33"),
("35", "35"),
("41", "41"),
("42", "42"),
("43", "43"),
("50", "50"),
("51", "51"),
("52", "52"),
("53", "53"),
]
# """Tipo Finalidade da NF-e (1=Normal; 2=Complementar; 3=Ajuste;
# 4=Devolução/Retorno)"""
TFinNFe = [
("1", "1"),
("2", "2"),
("3", "3"),
("4", "4"),
]
# "Tipo Modelo Documento Fiscal"
TMod = [
("55", "55"),
("65", "65"),
]
# "Tipo processo de emissão da NF-e"
TProcEmi = [
("0", "0"),
("1", "1"),
("2", "2"),
("3", "3"),
]
TTransformURI = [
("http://www.w3.org/2000/09/xmldsi", """http://www.w3.org/2000/09/xmldsig#
enveloped-signature"""),
("http://www.w3.org/TR/2001/REC-xm", """http://www.w3.org/TR/2001/REC-
xml-c14n-20010315"""),
]
# "Tipo Sigla da UF"
TUf = [
("AC", "AC"),
("AL", "AL"),
("AM", "AM"),
("AP", "AP"),
("BA", "BA"),
("CE", "CE"),
("DF", "DF"),
("ES", "ES"),
("GO", "GO"),
("MA", "MA"),
("MG", "MG"),
("MS", "MS"),
("MT", "MT"),
("PA", "PA"),
("PB", "PB"),
("PE", "PE"),
("PI", "PI"),
("PR", "PR"),
("RJ", "RJ"),
("RN", "RN"),
("RO", "RO"),
("RR", "RR"),
("RS", "RS"),
("SC", "SC"),
("SE", "SE"),
("SP", "SP"),
("TO", "TO"),
("EX", "EX"),
]
# "Tipo Sigla da UF de emissor // acrescentado em 24/10/08"
TUfEmi = [
("AC", "AC"),
("AL", "AL"),
("AM", "AM"),
("AP", "AP"),
("BA", "BA"),
("CE", "CE"),
("DF", "DF"),
("ES", "ES"),
("GO", "GO"),
("MA", "MA"),
("MG", "MG"),
("MS", "MS"),
("MT", "MT"),
("PA", "PA"),
("PB", "PB"),
("PE", "PE"),
("PI", "PI"),
("PR", "PR"),
("RJ", "RJ"),
("RN", "RN"),
("RO", "RO"),
("RR", "RR"),
("RS", "RS"),
("SC", "SC"),
("SE", "SE"),
("SP", "SP"),
("TO", "TO"),
]
# "Tipo Origem da mercadoria CST ICMS origem da mercadoria"
Torig = [
("0", "0-Nacional exceto as indicadas nos códigos 3, 4, 5 e 8"),
("1", "1-Estrangeira - Importação direta"),
("2", "2-Estrangeira - Adquirida no mercado interno"),
("3", "3-Nacional, conteudo superior 40% e inferior ou igual a 70%"),
("4", "4-Nacional, processos produtivos básicos"),
("5", "5-Nacional, conteudo inferior 40%"),
("6", """6-Estrangeira - Importação direta, com similar nacional, lista
CAMEX"""),
("7", "7-Estrangeira - mercado interno, sem simular,lista CAMEX"),
("8", "8-Nacional, Conteúdo de Importação superior a 70%."),
]
# "Informa-se o veículo tem VIN (chassi) remarcado."
VINType = [
("R", "R-Remarcado"),
("N", "N-NormalVIN"),
]
# "Código do país"
cPaisType62 = [
("1058", "1058"),
]
# "Código do regime especial de tributação"
cRegTribType = [
("1", "1"),
("2", "2"),
("3", "3"),
("4", "4"),
("5", "5"),
("6", "6"),
]
# """Condição do veículo (1 - acabado; 2 - inacabado; 3 - semi-
# acabado)"""
condVeicType = [
("1", "1"),
("2", "2"),
("3", "3"),
]
# """Identificador de Local de destino da operação
# (1-Interna;2-Interestadual;3-Exterior)"""
idDestType = [
("1", "1"),
("2", "2"),
("3", "3"),
]
indEscalaType = [
("S", "S"),
("N", "N"),
]
# """Indica operação com consumidor final (0-Não;1-Consumidor Final)"""
indFinalType = [
("0", "0"),
("1", "1"),
]
# "Indicador da IE do destinatário:"
indIEDestType = [
("1", "1 – Contribuinte ICMSpagamento à vista"),
("2", "2 – Contribuinte isento de inscrição"),
("9", "9 – Não Contribuinte"),
]
# "Exibilidade do ISS"
indISSType = [
("1", "1-Exigível"),
("2", "2-Não incidente"),
("3", "3-Isenção"),
("4", "4-Exportação"),
("5", "5-Imunidade"),
("6", "6-Exig.Susp. Judicial"),
("7", "7-Exig.Susp. ADM"),
]
# "Indicador de Incentivo Fiscal. 1=Sim; 2=Não"
indIncentivoType = [
("1", "1"),
("2", "2"),
]
# """Indicador da Forma de Pagamento
# 0-Pagamento à Vista
# 1-Pagamento à Prazo"""
indPagType = [
("0", "0"),
("1", "1"),
]
# """Indicador de presença do comprador no estabelecimento comercial no
# momento da oepração
# (0-Não se aplica (ex.
# Nota Fiscal complementar ou de ajuste
# 1-Operação presencial
# 2-Não presencial, internet
# 3-Não presencial, teleatendimento
# 4-NFC-e entrega em domicílio
# 5-Operação presencial, fora do estabelecimento
# 9-Não presencial, outros)"""
indPresType = [
("0", "0"),
("1", "1"),
("2", "2"),
("3", "3"),
("4", "4"),
("5", "5"),
("9", "9"),
]
# "Origem do processo, informar com:"
indProcType = [
("0", "0 - SEFAZ"),
("1", "1 - Justiça Federal"),
("2", "2 - Justiça Estadual"),
("3", "3 - Secex/RFB"),
("9", "9 - Outros"),
]
# "Indicador de processamento síncrono. 0=NÃO; 1=SIM=Síncrono"
indSincType = [
("0", "0"),
("1", "1"),
]
# "Este campo deverá ser preenchido com:"
indTotType = [
("0", """0 – o valor do item (vProd) não compõe o valor total da NF-e
(vProd)"""),
("1", """1 – o valor do item (vProd) compõe o valor total da NF-e
(vProd)"""),
]
# "Modalidade de determinação da BC do ICMS ST:"
modBCSTType = [
("0", "0 – Preço tabelado ou máximo sugerido"),
("1", "1 - Lista Negativa (valor)"),
("2", "2 - Lista Positiva (valor)"),
("3", "3 - Lista Neutra (valor)"),
("4", "4 - Margem Valor Agregado (%)"),
("5", "5 - Pauta (valor)"),
]
# "Modalidade de determinação da BC do ICMS ST:"
modBCSTType13 = [
("0", "0 – Preço tabelado ou máximo sugerido"),
("1", "1 - Lista Negativa (valor)"),
("2", "2 - Lista Positiva (valor)"),
("3", "3 - Lista Neutra (valor)"),
("4", "4 - Margem Valor Agregado (%)"),
("5", "5 - Pauta (valor)."),
]
# "Modalidade de determinação da BC do ICMS ST:"
modBCSTType22 = [
("0", "0 – Preço tabelado ou máximo sugerido"),
("1", "1 - Lista Negativa (valor)"),
("2", "2 - Lista Positiva (valor)"),
("3", "3 - Lista Neutra (valor)"),
("4", "4 - Margem Valor Agregado (%)"),
("5", "5 - Pauta (valor)."),
]
# "Modalidade de determinação da BC do ICMS ST:"
modBCSTType26 = [
("0", "0 – Preço tabelado ou máximo sugerido"),
("1", "1 - Lista Negativa (valor)"),
("2", "2 - Lista Positiva (valor)"),
("3", "3 - Lista Neutra (valor)"),
("4", "4 - Margem Valor Agregado (%)"),
("5", "5 - Pauta (valor)."),
]
# "Modalidade de determinação da BC do ICMS ST:"
modBCSTType30 = [
("0", "0 – Preço tabelado ou máximo sugerido"),
("1", "1 - Lista Negativa (valor)"),
("2", "2 - Lista Positiva (valor)"),
("3", "3 - Lista Neutra (valor)"),
("4", "4 - Margem Valor Agregado (%)"),
("5", "5 - Pauta (valor)."),
]
# "Modalidade de determinação da BC do ICMS ST:"
modBCSTType34 = [
("0", "0 – Preço tabelado ou máximo sugerido"),
("1", "1 - Lista Negativa (valor)"),
("2", "2 - Lista Positiva (valor)"),
("3", "3 - Lista Neutra (valor)"),
("4", "4 - Margem Valor Agregado (%)"),
("5", "5 - Pauta (valor). (v2.0)"),
]
# "Modalidade de determinação da BC do ICMS ST:"
modBCSTType36 = [
("0", "0 – Preço tabelado ou máximo sugerido"),
("1", "1 - Lista Negativa (valor)"),
("2", "2 - Lista Positiva (valor)"),
("3", "3 - Lista Neutra (valor)"),
("4", "4 - Margem Valor Agregado (%)"),
("5", "5 - Pauta (valor). (v2.0)"),
]
# "Modalidade de determinação da BC do ICMS ST:"
modBCSTType40 = [
("0", "0 – Preço tabelado ou máximo sugerido"),
("1", "1 - Lista Negativa (valor)"),
("2", "2 - Lista Positiva (valor)"),
("3", "3 - Lista Neutra (valor)"),
("4", "4 - Margem Valor Agregado (%)"),
("5", "5 - Pauta (valor)."),
]
# "Modalidade de determinação da BC do ICMS:"
modBCType = [
("0", "0 - Margem Valor Agregado (%)"),
("1", "1 - Pauta (valor)"),
("2", "2 - Preço Tabelado Máximo (valor)"),
("3", "3 - Valor da Operação."),
]
# "Modalidade de determinação da BC do ICMS:"
modBCType11 = [
("0", "0 - Margem Valor Agregado (%)"),
("1", "1 - Pauta (valor)"),
("2", "2 - Preço Tabelado Máximo (valor)"),
("3", "3 - Valor da Operação."),
]
# "Modalidade de determinação da BC do ICMS:"
modBCType18 = [
("0", "0 - Margem Valor Agregado (%)"),
("1", "1 - Pauta (valor)"),
("2", "2 - Preço Tabelado Máximo (valor)"),
("3", "3 - Valor da Operação."),
]
# "Modalidade de determinação da BC do ICMS:"
modBCType21 = [
("0", "0 - Margem Valor Agregado (%)"),
("1", "1 - Pauta (valor)"),
("2", "2 - Preço Tabelado Máximo (valor)"),
("3", "3 - Valor da Operação."),
]
# "Modalidade de determinação da BC do ICMS:"
modBCType25 = [
("0", "0 - Margem Valor Agregado (%)"),
("1", "1 - Pauta (valor)"),
("2", "2 - Preço Tabelado Máximo (valor)"),
("3", "3 - Valor da Operação."),
]
# "Modalidade de determinação da BC do ICMS:"
modBCType29 = [
("0", "0 - Margem Valor Agregado (%)"),
("1", "1 - Pauta (valor)"),
("2", "2 - Preço Tabelado Máximo (valor)"),
("3", "3 - Valor da Operação."),
]
# "Modalidade de determinação da BC do ICMS:"
modBCType39 = [
("0", "0 - Margem Valor Agregado (%)"),
("1", "1 - Pauta (valor)"),
("2", "2 - Preço Tabelado Máximo (valor)"),
("3", "3 - Valor da Operação."),
]
# "Modalidade de determinação da BC do ICMS:"
modBCType9 = [
("0", "0 - Margem Valor Agregado (%)"),
("1", "1 - Pauta (valor)"),
("2", "2 - Preço Tabelado Máximo (valor)"),
("3", "3 - Valor da Operação."),
]
# "Modalidade do frete"
modFreteType = [
("0", "0- Contratação do Frete por conta do Remetente (CIF)"),
("1", """1- Contratação do Frete por conta do destinatário/remetente
(FOB)"""),
("2", "2- Contratação do Frete por conta de terceiros"),
("3", "3- Transporte próprio por conta do remetente"),
("4", "4- Transporte próprio por conta do destinatário"),
("9", "9- Sem Ocorrência de transporte."),
]
# """Código do modelo do Documento Fiscal. Utilizar 01 para NF modelo
# 1/1A e 02 para NF modelo 02"""
modType = [
("01", "01"),
("02", "02"),
]
# """Código do modelo do Documento Fiscal - utilizar 04 para NF de
# produtor ou 01 para NF Avulsa"""
modType2 = [
("01", "01"),
("04", "04"),
]
# """Código do modelo do Documento Fiscal
# Preencher com "2B", quando se tratar de Cupom Fiscal emitido por máquina
# registradora (não ECF), com "2C", quando se tratar de Cupom Fiscal PDV,
# ou "2D", quando se tratar de Cupom Fiscal (emitido por ECF)"""
modType3 = [
("2B", "2B"),
("2C", "2C"),
("2D", "2D"),
]
# "Motivo da desoneração do ICMS"
motDesICMSType = [
("3", "3-Uso na agropecuária"),
("9", "9-Outros"),
("12", "12-Fomento agropecuário"),
]
# "Motivo da desoneração do ICMS"
motDesICMSType14 = [
("6", "6-Utilitários Motocicleta AÁrea Livre"),
("7", "7-SUFRAMA"),
("9", "9-Outros"),
]
# """Este campo será preenchido quando o campo anterior estiver
# preenchido.
# Informar o motivo da desoneração:"""
motDesICMSType16 = [
("1", "1 – Táxi"),
("3", "3 – Produtor Agropecuário"),
("4", "4 – Frotista/Locadora"),
("5", "5 – Diplomático/Consular"),
("6", """6 – Utilitários e Motocicletas da Amazônia Ocidental e Áreas de
Livre Comércio (Resolução 714/88 e 790/94 – CONTRAN e suas
alterações)"""),
("7", "7 – SUFRAMA"),
("8", "8 - Venda a órgão Público"),
("9", "9 – Outros"),
("10", "10- Deficiente Condutor"),
("11", "11- Deficiente não condutor"),
("16", "16 - Olimpíadas Rio 2016"),
("90", "90 - Solicitado pelo Fisco"),
]
# "Motivo da desoneração do ICMS"
motDesICMSType23 = [
("3", "3-Uso na agropecuária"),
("9", "9-Outros"),
("12", "12-Fomento agropecuário"),
]
# "Motivo da desoneração do ICMS"
motDesICMSType27 = [
("3", "3-Uso na agropecuária"),
("9", "9-Outros"),
("12", "12-Fomento agropecuário"),
]
# """Alíquota interestadual das UF envolvidas
# - 4% alíquota interestadual para produtos importados
# - 7% para os Estados de origem do Sul e Sudeste (exceto ES), destinado
# para os Estados do Norte e Nordeste ou ES
# - 12% para os demais casos."""
pICMSInterType = [
("4.00", "4.00"),
("7.00", "7.00"),
("12.00", "12.00"),
]
# "Bandeira da operadora de cartão de crédito/débito"
tBandType = [
("01", "01–Visa"),
("02", "02–Mastercard"),
("03", "03–American Express"),
("04", "04–Sorocred"),
("05", "05-Diners Club"),
("06", "06-Elo"),
("07", "07-Hipercard"),
("08", "08-Aura"),
("09", "09-Cabal"),
("99", "99–Outros"),
]
# "Forma de Pagamento"
tPagType = [
("01", "01-Dinheiro"),
("02", "02-Cheque"),
("03", "03-Cartão de Crédito"),
("04", "04-Cartão de Débito"),
("05", "05-Crédito Loja"),
("10", "10-Vale Alimentação"),
("11", "11-Vale Refeição"),
("12", "12-Vale Presente"),
("13", "13-Vale Combustível"),
("14", "14 - Duplicata Mercantil"),
("15", "15 - Boleto Bancario"),
("90", "90 - Sem Pagamento"),
("99", "99 - Outros"),
]
# """Indicador do tipo de arma de fogo (0 - Uso permitido; 1 - Uso
# restrito)"""
tpArmaType = [
("0", "0"),
("1", "1"),
]
# "Forma de emissão da NF-e"
tpEmisType = [
("1", "1 - Normal"),
("2", "2 - Contingência FS"),
("3", "3 - Contingência SCAN"),
("4", "4 - Contingência DPEC"),
("5", "5 - Contingência FSDA"),
("6", "6 - Contingência SVC - AN"),
("7", "7 - Contingência SVC - RS"),
("9", "9 - Contingência off-line NFC-e"),
]
# """Formato de impressão do DANFE (0-sem DANFE;1-DANFe Retrato;
# 2-DANFe Paisagem;3-DANFe Simplificado;
# 4-DANFe NFC-e;5-DANFe NFC-e em mensagem eletrônica)"""
tpImpType = [
("0", "0"),
("1", "1"),
("2", "2"),
("3", "3"),
("4", "4"),
("5", "5"),
]
# """Tipo de Integração do processo de pagamento com o sistema de
# automação da empresa/"""
tpIntegraType = [
("1", """1=Pagamento integrado com o sistema de automação da empresa Ex.
equipamento TEF , Comercio Eletronico"""),
("2", """2=Pagamento não integrado com o sistema de automação da empresa
Ex: equipamento POS"""),
]
# """Forma de Importação quanto a intermediação
# 1-por conta propria;2-por conta e ordem;3-encomenda"""
tpIntermedioType = [
("1", "1"),
("2", "2"),
("3", "3"),
]
# "Tipo do Documento Fiscal (0 - entrada; 1 - saída)"
tpNFType = [
("0", "0"),
("1", "1"),
]
# """Tipo da Operação (1 - Venda concessionária; 2 - Faturamento
# direto; 3 - Venda direta; 0 - Outros)"""
tpOpType = [
("0", "0"),
("1", "1"),
("2", "2"),
("3", "3"),
]
# "Restrição"
tpRestType = [
("0", "0 - Não há"),
("1", "1 - Alienação Fiduciária"),
("2", "2 - Arrendamento Mercantil"),
("3", "3 - Reserva de Domínio"),
("4", "4 - Penhor de Veículos"),
("9", "9 - outras."),
]
# """Via de transporte internacional informada na DI
# 1-Maritima;2-Fluvial;3-Lacustre;4-Aerea;5-Postal;6-Ferroviaria;7-Rodoviar
# ia;8-Conduto;9-Meios Proprios;10-Entrada/Saida Ficta."""
tpViaTranspType = [
("1", "1"),
("2", "2"),
("3", "3"),
("4", "4"),
("5", "5"),
("6", "6"),
("7", "7"),
("8", "8"),
("9", "9"),
("10", "10"),
("11", "11"),
("12", "12"),
]
# "Nome do país"
xPaisType63 = [
("Brasil", "Brasil"),
("BRASIL", "BRASIL"),
]
class CIDE(spec_models.AbstractSpecMixin):
"CIDE Combustíveis"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.cide'
_generateds_type = 'CIDEType'
_concrete_class = None
_concrete_rec_name = 'nfe_qBCProd'
nfe_qBCProd = fields.Monetary(
digits=4, string="BC do CIDE", xsd_required=True,
help="BC do CIDE ( Quantidade comercializada)")
nfe_vAliqProd = fields.Monetary(
digits=4, string="Alíquota do CIDE (em reais)",
xsd_required=True,
help="Alíquota do CIDE (em reais)")
nfe_vCIDE = fields.Monetary(
digits=2, string="Valor do CIDE", xsd_required=True)
class COFINSAliq(spec_models.AbstractSpecMixin):
"""Código de Situação Tributária do COFINS.
01 – Operação Tributável - Base de Cálculo = Valor da Operação
Alíquota Normal (Cumulativo/Não Cumulativo);
02 - Operação Tributável - Base de Calculo = Valor da Operação
(Alíquota Diferenciada);"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.cofinsaliq'
_generateds_type = 'COFINSAliqType'
_concrete_class = None
_concrete_rec_name = 'nfe_CST'
nfe_CST = fields.Selection(
CSTType45,
string="Código de Situação Tributária do COFINS",
xsd_required=True,
help=("Código de Situação Tributária do COFINS."
"01 – Operação Tributável - Base de Cálculo = Valor da Operação"
"Alíquota Normal (Cumulativo/Não Cumulativo);"
"02 - Operação Tributável - Base de Calculo = Valor da Operação"
"(Alíquota Diferenciada);"))
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do COFINS", xsd_required=True)
nfe_pCOFINS = fields.Monetary(
digits=2, string="Alíquota do COFINS (em percentual)",
xsd_required=True)
nfe_vCOFINS = fields.Monetary(
digits=2, string="Valor do COFINS", xsd_required=True)
class COFINSNT(spec_models.AbstractSpecMixin):
"""Código de Situação Tributária do COFINS:
04 - Operação Tributável - Tributação Monofásica - (Alíquota Zero);
06 - Operação Tributável - Alíquota Zero;
07 - Operação Isenta da contribuição;
08 - Operação Sem Incidência da contribuição;
09 - Operação com suspensão da contribuição;"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.cofinsnt'
_generateds_type = 'COFINSNTType'
_concrete_class = None
_concrete_rec_name = 'nfe_CST'
nfe_CST = fields.Selection(
CSTType47,
string="Código de Situação Tributária do COFINS",
xsd_required=True,
help=("Código de Situação Tributária do COFINS:"
"04 - Operação Tributável - Tributação Monofásica - (Alíquota"
"Zero);"
"05 - Operação Tributável (ST);"
"06 - Operação Tributável - Alíquota Zero;"
"07 - Operação Isenta da contribuição;"
"08 - Operação Sem Incidência da contribuição;"
"09 - Operação com suspensão da contribuição;"))
class COFINSOutr(spec_models.AbstractSpecMixin):
"""Código de Situação Tributária do COFINS:
49 - Outras Operações de Saída
50 - Operação com Direito a Crédito - Vinculada Exclusivamente a
Receita Tributada no Mercado Interno
51 - Operação com Direito a Crédito – Vinculada Exclusivamente a
Receita Não Tributada no Mercado Interno
52 - Operação com Direito a Crédito - Vinculada Exclusivamente a
Receita de Exportação
53 - Operação com Direito a Crédito - Vinculada a Receitas Tributadas e
Não-Tributadas no Mercado Interno
54 - Operação com Direito a Crédito - Vinculada a Receitas Tributadas
no Mercado Interno e de Exportação
55 - Operação com Direito a Crédito - Vinculada a Receitas Não-
Tributadas no Mercado Interno e de Exportação
56 - Operação com Direito a Crédito - Vinculada a Receitas Tributadas e
Não-Tributadas no Mercado Interno, e de Exportação
60 - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente
a Receita Tributada no Mercado Interno
61 - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente
a Receita Não-Tributada no Mercado Interno
62 - Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente
a Receita de Exportação
63 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas
Tributadas e Não-Tributadas no Mercado Interno
64 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas
Tributadas no Mercado Interno e de Exportação
65 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas
Não-Tributadas no Mercado Interno e de Exportação
66 - Crédito Presumido - Operação de Aquisição Vinculada a Receitas
Tributadas e Não-Tributadas no Mercado Interno, e de Exportação
67 - Crédito Presumido - Outras Operações
70 - Operação de Aquisição sem Direito a Crédito
71 - Operação de Aquisição com Isenção
72 - Operação de Aquisição com Suspensão
73 - Operação de Aquisição a Alíquota Zero
74 - Operação de Aquisição sem Incidência da Contribuição
75 - Operação de Aquisição por Substituição Tributária
98 - Outras Operações de Entrada
99 - Outras Operações."""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.cofinsoutr'
_generateds_type = 'COFINSOutrType'
_concrete_class = None
_concrete_rec_name = 'nfe_CST'
nfe_choice16 = fields.Selection([
('nfe_vBC', 'vBC'),
('nfe_pCOFINS', 'pCOFINS'),
('nfe_qBCProd', 'qBCProd'),
('nfe_vAliqProd', 'vAliqProd')],
"vBC/pCOFINS/qBCProd/vAliqProd",
default="nfe_vBC")
nfe_CST = fields.Selection(
CSTType48,
string="Código de Situação Tributária do COFINS",
xsd_required=True,
help=("Código de Situação Tributária do COFINS:"
"49 - Outras Operações de Saída"
"50 - Operação com Direito a Crédito - Vinculada Exclusivamente"
"a Receita Tributada no Mercado Interno"
"51 - Operação com Direito a Crédito – Vinculada Exclusivamente"
"a Receita Não Tributada no Mercado Interno"
"52 - Operação com Direito a Crédito - Vinculada Exclusivamente"
"a Receita de Exportação"
"53 - Operação com Direito a Crédito - Vinculada a Receitas"
"Tributadas e Não-Tributadas no Mercado Interno"
"54 - Operação com Direito a Crédito - Vinculada a Receitas"
"Tributadas no Mercado Interno e de Exportação"
"55 - Operação com Direito a Crédito - Vinculada a Receitas"
"Não-Tributadas no Mercado Interno e de"
"Exportação"
"56 - Operação com Direito a Crédito - Vinculada a Receitas"
"Tributadas e Não-Tributadas no Mercado Interno,"
"e de Exportação"
"60 - Crédito Presumido - Operação de Aquisição Vinculada"
"Exclusivamente a Receita Tributada no Mercado"
"Interno"
"61 - Crédito Presumido - Operação de Aquisição Vinculada"
"Exclusivamente a Receita Não-Tributada no"
"Mercado Interno"
"62 - Crédito Presumido - Operação de Aquisição Vinculada"
"Exclusivamente a Receita de Exportação"
"63 - Crédito Presumido - Operação de Aquisição Vinculada a"
"Receitas Tributadas e Não-Tributadas no Mercado"
"Interno"
"64 - Crédito Presumido - Operação de Aquisição Vinculada a"
"Receitas Tributadas no Mercado Interno e de"
"Exportação"
"65 - Crédito Presumido - Operação de Aquisição Vinculada a"
"Receitas Não-Tributadas no Mercado Interno e de"
"Exportação"
"66 - Crédito Presumido - Operação de Aquisição Vinculada a"
"Receitas Tributadas e Não-Tributadas no Mercado"
"Interno, e de Exportação"
"67 - Crédito Presumido - Outras Operações"
"70 - Operação de Aquisição sem Direito a Crédito"
"71 - Operação de Aquisição com Isenção"
"72 - Operação de Aquisição com Suspensão"
"73 - Operação de Aquisição a Alíquota Zero"
"74 - Operação de Aquisição sem Incidência da Contribuição"
"75 - Operação de Aquisição por Substituição Tributária"
"98 - Outras Operações de Entrada"
"99 - Outras Operações."))
nfe_vBC = fields.Monetary(
digits=2, choice='16',
string="Valor da BC do COFINS", xsd_required=True)
nfe_pCOFINS = fields.Monetary(
digits=2, choice='16',
string="Alíquota do COFINS (em percentual)",
xsd_required=True)
nfe_qBCProd = fields.Monetary(
digits=4, choice='16',
string="Quantidade Vendida (NT2011/004)",
xsd_required=True)
nfe_vAliqProd = fields.Monetary(
digits=4, choice='16',
string="Alíquota do COFINS",
xsd_required=True,
help="Alíquota do COFINS (em reais) (NT2011/004)")
nfe_vCOFINS = fields.Monetary(
digits=2, string="Valor do COFINS", xsd_required=True)
class COFINSQtde(spec_models.AbstractSpecMixin):
"""Código de Situação Tributária do COFINS.
03 - Operação Tributável - Base de Calculo = Quantidade Vendida x
Alíquota por Unidade de Produto;"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.cofinsqtde'
_generateds_type = 'COFINSQtdeType'
_concrete_class = None
_concrete_rec_name = 'nfe_CST'
nfe_CST = fields.Selection(
CSTType46,
string="Código de Situação Tributária do COFINS",
xsd_required=True,
help=("Código de Situação Tributária do COFINS."
"03 - Operação Tributável - Base de Calculo = Quantidade"
"Vendida x Alíquota por Unidade de Produto;"))
nfe_qBCProd = fields.Monetary(
digits=4, string="Quantidade Vendida (NT2011/004)",
xsd_required=True)
nfe_vAliqProd = fields.Monetary(
digits=4, string="Alíquota do COFINS",
xsd_required=True,
help="Alíquota do COFINS (em reais) (NT2011/004)")
nfe_vCOFINS = fields.Monetary(
digits=2, string="Valor do COFINS", xsd_required=True)
class COFINSST(spec_models.AbstractSpecMixin):
"""Dados do COFINS da
Substituição Tributaria;"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.cofinsst'
_generateds_type = 'COFINSSTType'
_concrete_class = None
_concrete_rec_name = 'nfe_vBC'
nfe_choice17 = fields.Selection([
('nfe_vBC', 'vBC'),
('nfe_pCOFINS', 'pCOFINS'),
('nfe_qBCProd', 'qBCProd'),
('nfe_vAliqProd', 'vAliqProd')],
"vBC/pCOFINS/qBCProd/vAliqProd",
default="nfe_vBC")
nfe_vBC = fields.Monetary(
digits=2, choice='17',
string="Valor da BC do COFINS ST",
xsd_required=True)
nfe_pCOFINS = fields.Monetary(
digits=2, choice='17',
string="Alíquota do COFINS ST(em percentual)",
xsd_required=True)
nfe_qBCProd = fields.Monetary(
digits=4, choice='17',
string="Quantidade Vendida", xsd_required=True)
nfe_vAliqProd = fields.Monetary(
digits=4, choice='17',
string="Alíquota do COFINS ST(em reais)",
xsd_required=True)
nfe_vCOFINS = fields.Monetary(
digits=2, string="Valor do COFINS ST", xsd_required=True)
class COFINS(spec_models.AbstractSpecMixin):
"Dados do COFINS"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.cofins'
_generateds_type = 'COFINSType'
_concrete_class = None
_concrete_rec_name = 'nfe_COFINSAliq'
nfe_choice15 = fields.Selection([
('nfe_COFINSAliq', 'COFINSAliq'),
('nfe_COFINSQtde', 'COFINSQtde'),
('nfe_COFINSNT', 'COFINSNT'),
('nfe_COFINSOutr', 'COFINSOutr')],
"COFINSAliq/COFINSQtde/COFINSNT/COFINSOutr",
default="nfe_COFINSAliq")
nfe_COFINSAliq = fields.Many2one(
"nfe.v4_00.cofinsaliq",
choice='15',
string="Código de Situação Tributária do COFINS",
xsd_required=True,
help=("Código de Situação Tributária do COFINS."
"01 – Operação Tributável - Base de Cálculo = Valor da Operação"
"Alíquota Normal (Cumulativo/Não Cumulativo);"
"02 - Operação Tributável - Base de Calculo = Valor da Operação"
"(Alíquota Diferenciada);"))
nfe_COFINSQtde = fields.Many2one(
"nfe.v4_00.cofinsqtde",
choice='15',
string="Código de Situação Tributária do COFINS",
xsd_required=True,
help=("Código de Situação Tributária do COFINS."
"03 - Operação Tributável - Base de Calculo = Quantidade"
"Vendida x Alíquota por Unidade de Produto;"))
nfe_COFINSNT = fields.Many2one(
"nfe.v4_00.cofinsnt",
choice='15',
string="Código de Situação Tributária do COFINS",
xsd_required=True,
help=("Código de Situação Tributária do COFINS:"
"04 - Operação Tributável - Tributação Monofásica - (Alíquota"
"Zero);"
"06 - Operação Tributável - Alíquota Zero;"
"07 - Operação Isenta da contribuição;"
"08 - Operação Sem Incidência da contribuição;"
"09 - Operação com suspensão da contribuição;"))
nfe_COFINSOutr = fields.Many2one(
"nfe.v4_00.cofinsoutr",
choice='15',
string="Código de Situação Tributária do COFINS",
xsd_required=True,
help=("Código de Situação Tributária do COFINS:"
"49 - Outras Operações de Saída"
"50 - Operação com Direito a Crédito - Vinculada Exclusivamente"
"a Receita Tributada no Mercado Interno"
"51 - Operação com Direito a Crédito – Vinculada Exclusivamente"
"a Receita Não Tributada no Mercado Interno"
"52 - Operação com Direito a Crédito - Vinculada Exclusivamente"
"a Receita de Exportação"
"53 - Operação com Direito a Crédito - Vinculada a Receitas"
"Tributadas e Não-Tributadas no Mercado Interno"
"54 - Operação com Direito a Crédito - Vinculada a Receitas"
"Tributadas no Mercado Interno e de Exportação"
"55 - Operação com Direito a Crédito - Vinculada a Receitas"
"Não-Tributadas no Mercado Interno e de"
"Exportação"
"56 - Operação com Direito a Crédito - Vinculada a Receitas"
"Tributadas e Não-Tributadas no Mercado Interno,"
"e de Exportação"
"60 - Crédito Presumido - Operação de Aquisição Vinculada"
"Exclusivamente a Receita Tributada no Mercado"
"Interno"
"61 - Crédito Presumido - Operação de Aquisição Vinculada"
"Exclusivamente a Receita Não-Tributada no"
"Mercado Interno"
"62 - Crédito Presumido - Operação de Aquisição Vinculada"
"Exclusivamente a Receita de Exportação"
"63 - Crédito Presumido - Operação de Aquisição Vinculada a"
"Receitas Tributadas e Não-Tributadas no Mercado"
"Interno"
"64 - Crédito Presumido - Operação de Aquisição Vinculada a"
"Receitas Tributadas no Mercado Interno e de"
"Exportação"
"65 - Crédito Presumido - Operação de Aquisição Vinculada a"
"Receitas Não-Tributadas no Mercado Interno e de"
"Exportação"
"66 - Crédito Presumido - Operação de Aquisição Vinculada a"
"Receitas Tributadas e Não-Tributadas no Mercado"
"Interno, e de Exportação"
"67 - Crédito Presumido - Outras Operações"
"70 - Operação de Aquisição sem Direito a Crédito"
"71 - Operação de Aquisição com Isenção"
"72 - Operação de Aquisição com Suspensão"
"73 - Operação de Aquisição a Alíquota Zero"
"74 - Operação de Aquisição sem Incidência da Contribuição"
"75 - Operação de Aquisição por Substituição Tributária"
"98 - Outras Operações de Entrada"
"99 - Outras Operações."))
class CanonicalizationMethod(spec_models.AbstractSpecMixin):
_description = 'canonicalizationmethod'
_name = 'nfe.v4_00.canonicalizationmethod'
_generateds_type = 'CanonicalizationMethodType'
_concrete_class = None
_concrete_rec_name = 'nfe_Algorithm'
nfe_Algorithm = fields.Char(
string="Algorithm", xsd_required=True)
class DI(spec_models.AbstractSpecMixin):
"""Delcaração de Importação
(NT 2011/004)"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.di'
_generateds_type = 'DIType'
_concrete_class = None
_concrete_rec_name = 'nfe_nDI'
nfe_DI_prod_id = fields.Many2one(
"nfe.v4_00.prod")
nfe_nDI = fields.Char(
string="Numero do Documento de Importação DI/DSI/DA/DRI",
xsd_required=True,
help=("Numero do Documento de Importação DI/DSI/DA/DRI-E"
"(DI/DSI/DA/DRI-E) (NT2011/004)"))
nfe_dDI = fields.Char(
string="Data de registro da DI/DSI/DA",
xsd_required=True,
help="Data de registro da DI/DSI/DA (AAAA-MM-DD)")
nfe_xLocDesemb = fields.Char(
string="Local do desembaraço aduaneiro",
xsd_required=True)
nfe_UFDesemb = fields.Selection(
TUfEmi,
string="UF onde ocorreu o desembaraço aduaneiro",
xsd_required=True)
nfe_dDesemb = fields.Char(
string="Data do desembaraço aduaneiro",
xsd_required=True,
help="Data do desembaraço aduaneiro (AAAA-MM-DD)")
nfe_tpViaTransp = fields.Selection(
tpViaTranspType,
string="Via de transporte internacional informada na DI",
xsd_required=True,
help=("Via de transporte internacional informada na DI"
"1-Maritima;2-Fluvial;3-Lacustre;4-Aerea;5-Postal;6-Ferroviaria"
";7-Rodoviaria;8-Conduto;9-Meios"
"Proprios;10-Entrada/Saida Ficta."))
nfe_vAFRMM = fields.Monetary(
digits=2,
string="Valor Adicional ao frete para renovação de marinha mercante")
nfe_tpIntermedio = fields.Selection(
tpIntermedioType,
string="Forma de Importação quanto a intermediação",
xsd_required=True,
help=("Forma de Importação quanto a intermediação"
"1-por conta propria;2-por conta e ordem;3-encomenda"))
nfe_CNPJ = fields.Char(
string="CNPJ do adquirente ou do encomendante")
nfe_UFTerceiro = fields.Selection(
TUfEmi,
string="Sigla da UF do adquirente ou do encomendante")
nfe_cExportador = fields.Char(
string="Código do exportador",
xsd_required=True,
help=("Código do exportador (usado nos sistemas internos de"
"informação do emitente da NF-e)"))
nfe_adi = fields.One2many(
"nfe.v4_00.adi",
"nfe_adi_DI_id",
string="Adições (NT 2011/004)", xsd_required=True
)
class DigestMethod(spec_models.AbstractSpecMixin):
_description = 'digestmethod'
_name = 'nfe.v4_00.digestmethod'
_generateds_type = 'DigestMethodType'
_concrete_class = None
_concrete_rec_name = 'nfe_Algorithm'
nfe_Algorithm = fields.Char(
string="Algorithm", xsd_required=True)
class ICMS00(spec_models.AbstractSpecMixin):
"""Tributação pelo ICMS
00 - Tributada integralmente"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icms00'
_generateds_type = 'ICMS00Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType,
string="Tributção pelo ICMS", xsd_required=True,
help=("Tributção pelo ICMS"
"00 - Tributada integralmente"))
nfe_modBC = fields.Selection(
modBCType,
string="Modalidade de determinação da BC do ICMS",
xsd_required=True,
help=("Modalidade de determinação da BC do ICMS:"
"0 - Margem Valor Agregado (%);"
"1 - Pauta (valor);"
"2 - Preço Tabelado Máximo (valor);"
"3 - Valor da Operação."))
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do ICMS", xsd_required=True)
nfe_pICMS = fields.Monetary(
digits=2, string="Alíquota do ICMS", xsd_required=True)
nfe_vICMS = fields.Monetary(
digits=2, string="Valor do ICMS", xsd_required=True)
nfe_pFCP = fields.Monetary(
digits=2,
string="Percentual de ICMS relativo ao Fundo de Combate à Pobreza",
help=("Percentual de ICMS relativo ao Fundo de Combate à Pobreza"
"(FCP)."))
nfe_vFCP = fields.Monetary(
digits=2,
string="Valor do ICMS relativo ao Fundo de Combate à Pobreza",
help="Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).")
class ICMS10(spec_models.AbstractSpecMixin):
"""Tributação pelo ICMS
10 - Tributada e com cobrança do ICMS por substituição tributária"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icms10'
_generateds_type = 'ICMS10Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType8,
string="10", xsd_required=True,
help=("10 - Tributada e com cobrança do ICMS por substituição"
"tributária"))
nfe_modBC = fields.Selection(
modBCType9,
string="Modalidade de determinação da BC do ICMS",
xsd_required=True,
help=("Modalidade de determinação da BC do ICMS:"
"0 - Margem Valor Agregado (%);"
"1 - Pauta (valor);"
"2 - Preço Tabelado Máximo (valor);"
"3 - Valor da Operação."))
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do ICMS", xsd_required=True)
nfe_pICMS = fields.Monetary(
digits=2, string="Alíquota do ICMS", xsd_required=True)
nfe_vICMS = fields.Monetary(
digits=2, string="Valor do ICMS", xsd_required=True)
nfe_vBCFCP = fields.Monetary(
digits=2, string="Valor da Base de cálculo do FCP.")
nfe_pFCP = fields.Monetary(
digits=2,
string="Percentual de ICMS relativo ao Fundo de Combate à Pobreza",
help=("Percentual de ICMS relativo ao Fundo de Combate à Pobreza"
"(FCP)."))
nfe_vFCP = fields.Monetary(
digits=2,
string="Valor do ICMS relativo ao Fundo de Combate à Pobreza",
help="Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).")
nfe_modBCST = fields.Selection(
modBCSTType,
string="Modalidade de determinação da BC do ICMS ST",
xsd_required=True,
help=("Modalidade de determinação da BC do ICMS ST:"
"0 – Preço tabelado ou máximo sugerido;"
"1 - Lista Negativa (valor);"
"2 - Lista Positiva (valor);"
"3 - Lista Neutra (valor);"
"4 - Margem Valor Agregado (%);"
"5 - Pauta (valor);"))
nfe_pMVAST = fields.Monetary(
digits=2, string="Percentual da Margem de Valor Adicionado ICMS ST")
nfe_pRedBCST = fields.Monetary(
digits=2, string="Percentual de redução da BC ICMS ST")
nfe_vBCST = fields.Monetary(
digits=2, string="Valor da BC do ICMS ST",
xsd_required=True)
nfe_pICMSST = fields.Monetary(
digits=2, string="Alíquota do ICMS ST", xsd_required=True)
nfe_vICMSST = fields.Monetary(
digits=2, string="Valor do ICMS ST", xsd_required=True)
nfe_vBCFCPST = fields.Monetary(
digits=2, string="vBCFCPST",
help=("Valor da Base de cálculo do FCP retido por substituicao"
"tributaria."))
nfe_pFCPST = fields.Monetary(
digits=2,
string="Percentual de FCP retido por substituição tributária")
nfe_vFCPST = fields.Monetary(
digits=2, string="Valor do FCP retido por substituição tributária")
class ICMS20(spec_models.AbstractSpecMixin):
"""Tributção pelo ICMS
20 - Com redução de base de cálculo"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icms20'
_generateds_type = 'ICMS20Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType10,
string="Tributção pelo ICMS", xsd_required=True,
help=("Tributção pelo ICMS"
"20 - Com redução de base de cálculo"))
nfe_modBC = fields.Selection(
modBCType11,
string="Modalidade de determinação da BC do ICMS",
xsd_required=True,
help=("Modalidade de determinação da BC do ICMS:"
"0 - Margem Valor Agregado (%);"
"1 - Pauta (valor);"
"2 - Preço Tabelado Máximo (valor);"
"3 - Valor da Operação."))
nfe_pRedBC = fields.Monetary(
digits=2, string="Percentual de redução da BC",
xsd_required=True)
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do ICMS", xsd_required=True)
nfe_pICMS = fields.Monetary(
digits=2, string="Alíquota do ICMS", xsd_required=True)
nfe_vICMS = fields.Monetary(
digits=2, string="Valor do ICMS", xsd_required=True)
nfe_vBCFCP = fields.Monetary(
digits=2, string="Valor da Base de cálculo do FCP.")
nfe_pFCP = fields.Monetary(
digits=2,
string="Percentual de ICMS relativo ao Fundo de Combate à Pobreza",
help=("Percentual de ICMS relativo ao Fundo de Combate à Pobreza"
"(FCP)."))
nfe_vFCP = fields.Monetary(
digits=2,
string="Valor do ICMS relativo ao Fundo de Combate à Pobreza",
help="Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).")
nfe_vICMSDeson = fields.Monetary(
digits=2, string="Valor do ICMS de desoneração")
nfe_motDesICMS = fields.Selection(
motDesICMSType,
string="Motivo da desoneração do ICMS:3",
help=("Motivo da desoneração do ICMS:3-Uso na"
"agropecuária;9-Outros;12-Fomento agropecuário"))
class ICMS30(spec_models.AbstractSpecMixin):
"""Tributação pelo ICMS
30 - Isenta ou não tributada e com cobrança do ICMS por substituição
tributária"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icms30'
_generateds_type = 'ICMS30Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType12,
string="Tributção pelo ICMS", xsd_required=True,
help=("Tributção pelo ICMS"
"30 - Isenta ou não tributada e com cobrança do ICMS por"
"substituição tributária"))
nfe_modBCST = fields.Selection(
modBCSTType13,
string="Modalidade de determinação da BC do ICMS ST",
xsd_required=True,
help=("Modalidade de determinação da BC do ICMS ST:"
"0 – Preço tabelado ou máximo sugerido;"
"1 - Lista Negativa (valor);"
"2 - Lista Positiva (valor);"
"3 - Lista Neutra (valor);"
"4 - Margem Valor Agregado (%);"
"5 - Pauta (valor)."))
nfe_pMVAST = fields.Monetary(
digits=2, string="Percentual da Margem de Valor Adicionado ICMS ST")
nfe_pRedBCST = fields.Monetary(
digits=2, string="Percentual de redução da BC ICMS ST")
nfe_vBCST = fields.Monetary(
digits=2, string="Valor da BC do ICMS ST",
xsd_required=True)
nfe_pICMSST = fields.Monetary(
digits=2, string="Alíquota do ICMS ST", xsd_required=True)
nfe_vICMSST = fields.Monetary(
digits=2, string="Valor do ICMS ST", xsd_required=True)
nfe_vBCFCPST = fields.Monetary(
digits=2, string="Valor da Base de cálculo do FCP.")
nfe_pFCPST = fields.Monetary(
digits=2,
string="Percentual de FCP retido por substituição tributária")
nfe_vFCPST = fields.Monetary(
digits=2, string="Valor do FCP retido por substituição tributária")
nfe_vICMSDeson = fields.Monetary(
digits=2, string="Valor do ICMS de desoneração")
nfe_motDesICMS = fields.Selection(
motDesICMSType14,
string="Motivo da desoneração do ICMS:6",
help=("Motivo da desoneração do ICMS:6-Utilitários Motocicleta AÁrea"
"Livre;7-SUFRAMA;9-Outros"))
class ICMS40(spec_models.AbstractSpecMixin):
"""Tributação pelo ICMS
40 - Isenta
41 - Não tributada
50 - Suspensão"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icms40'
_generateds_type = 'ICMS40Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType15,
string="Tributação pelo ICMS", xsd_required=True,
help=("Tributação pelo ICMS"
"40 - Isenta"
"41 - Não tributada"
"50 - Suspensão"
"51 - Diferimento"))
nfe_vICMSDeson = fields.Monetary(
digits=2, string="vICMSDeson",
help=("O valor do ICMS será informado apenas nas operações com"
"veículos beneficiados com a desoneração"
"condicional do ICMS."))
nfe_motDesICMS = fields.Selection(
motDesICMSType16,
string="motDesICMS",
help=("Este campo será preenchido quando o campo anterior estiver"
"preenchido."
"Informar o motivo da desoneração:"))
class ICMS51(spec_models.AbstractSpecMixin):
"""Tributção pelo ICMS
51 - Diferimento
A exigência do preenchimento das informações do ICMS diferido fica à
critério de cada UF."""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icms51'
_generateds_type = 'ICMS51Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType17,
string="Tributção pelo ICMS", xsd_required=True,
help=("Tributção pelo ICMS"
"20 - Com redução de base de cálculo"))
nfe_modBC = fields.Selection(
modBCType18,
string="Modalidade de determinação da BC do ICMS",
help=("Modalidade de determinação da BC do ICMS:"
"0 - Margem Valor Agregado (%);"
"1 - Pauta (valor);"
"2 - Preço Tabelado Máximo (valor);"
"3 - Valor da Operação."))
nfe_pRedBC = fields.Monetary(
digits=2, string="Percentual de redução da BC")
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do ICMS")
nfe_pICMS = fields.Monetary(
digits=2, string="Alíquota do imposto")
nfe_vICMSOp = fields.Monetary(
digits=2, string="Valor do ICMS da Operação")
nfe_pDif = fields.Monetary(
digits=2, string="Percentual do diferemento")
nfe_vICMSDif = fields.Monetary(
digits=2, string="Valor do ICMS da diferido")
nfe_vICMS = fields.Monetary(
digits=2, string="Valor do ICMS")
nfe_vBCFCP = fields.Monetary(
digits=2, string="Valor da Base de cálculo do FCP.")
nfe_pFCP = fields.Monetary(
digits=2,
string="Percentual de ICMS relativo ao Fundo de Combate à Pobreza",
help=("Percentual de ICMS relativo ao Fundo de Combate à Pobreza"
"(FCP)."))
nfe_vFCP = fields.Monetary(
digits=2,
string="Valor do ICMS relativo ao Fundo de Combate à Pobreza",
help="Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).")
class ICMS60(spec_models.AbstractSpecMixin):
"""Tributação pelo ICMS
60 - ICMS cobrado anteriormente por substituição tributária"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icms60'
_generateds_type = 'ICMS60Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType19,
string="Tributação pelo ICMS", xsd_required=True,
help=("Tributação pelo ICMS"
"60 - ICMS cobrado anteriormente por substituição tributária"))
nfe_vBCSTRet = fields.Monetary(
digits=2, string="Valor da BC do ICMS ST retido anteriormente")
nfe_pST = fields.Monetary(
digits=2, string="Aliquota suportada pelo consumidor final")
nfe_vICMSSTRet = fields.Monetary(
digits=2, string="Valor do ICMS ST retido anteriormente")
nfe_vBCFCPSTRet = fields.Monetary(
digits=2,
string="Valor da Base de cálculo do FCP retido anteriormente por ST")
nfe_pFCPSTRet = fields.Monetary(
digits=2, string="pFCPSTRet",
help=("Percentual de FCP retido anteriormente por substituição"
"tributária."))
nfe_vFCPSTRet = fields.Monetary(
digits=2, string="Valor do FCP retido por substituição tributária")
nfe_pRedBCEfet = fields.Monetary(
digits=2, string="Percentual de redução da base de cálculo efetiva")
nfe_vBCEfet = fields.Monetary(
digits=2, string="Valor da base de cálculo efetiva.")
nfe_pICMSEfet = fields.Monetary(
digits=2, string="Alíquota do ICMS efetiva.")
nfe_vICMSEfet = fields.Monetary(
digits=2, string="Valor do ICMS efetivo.")
class ICMS70(spec_models.AbstractSpecMixin):
"""Tributação pelo ICMS
70 - Com redução de base de cálculo e cobrança do ICMS por substituição
tributária"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icms70'
_generateds_type = 'ICMS70Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType20,
string="Tributção pelo ICMS", xsd_required=True,
help=("Tributção pelo ICMS"
"70 - Com redução de base de cálculo e cobrança do ICMS por"
"substituição tributária"))
nfe_modBC = fields.Selection(
modBCType21,
string="Modalidade de determinação da BC do ICMS",
xsd_required=True,
help=("Modalidade de determinação da BC do ICMS:"
"0 - Margem Valor Agregado (%);"
"1 - Pauta (valor);"
"2 - Preço Tabelado Máximo (valor);"
"3 - Valor da Operação."))
nfe_pRedBC = fields.Monetary(
digits=2, string="Percentual de redução da BC",
xsd_required=True)
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do ICMS", xsd_required=True)
nfe_pICMS = fields.Monetary(
digits=2, string="Alíquota do ICMS", xsd_required=True)
nfe_vICMS = fields.Monetary(
digits=2, string="Valor do ICMS", xsd_required=True)
nfe_vBCFCP = fields.Monetary(
digits=2, string="Valor da Base de cálculo do FCP.")
nfe_pFCP = fields.Monetary(
digits=2,
string="Percentual de ICMS relativo ao Fundo de Combate à Pobreza",
help=("Percentual de ICMS relativo ao Fundo de Combate à Pobreza"
"(FCP)."))
nfe_vFCP = fields.Monetary(
digits=2,
string="Valor do ICMS relativo ao Fundo de Combate à Pobreza",
help="Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).")
nfe_modBCST = fields.Selection(
modBCSTType22,
string="Modalidade de determinação da BC do ICMS ST",
xsd_required=True,
help=("Modalidade de determinação da BC do ICMS ST:"
"0 – Preço tabelado ou máximo sugerido;"
"1 - Lista Negativa (valor);"
"2 - Lista Positiva (valor);"
"3 - Lista Neutra (valor);"
"4 - Margem Valor Agregado (%);"
"5 - Pauta (valor)."))
nfe_pMVAST = fields.Monetary(
digits=2, string="Percentual da Margem de Valor Adicionado ICMS ST")
nfe_pRedBCST = fields.Monetary(
digits=2, string="Percentual de redução da BC ICMS ST")
nfe_vBCST = fields.Monetary(
digits=2, string="Valor da BC do ICMS ST",
xsd_required=True)
nfe_pICMSST = fields.Monetary(
digits=2, string="Alíquota do ICMS ST", xsd_required=True)
nfe_vICMSST = fields.Monetary(
digits=2, string="Valor do ICMS ST", xsd_required=True)
nfe_vBCFCPST = fields.Monetary(
digits=2, string="vBCFCPST",
help=("Valor da Base de cálculo do FCP retido por substituição"
"tributária."))
nfe_pFCPST = fields.Monetary(
digits=2,
string="Percentual de FCP retido por substituição tributária")
nfe_vFCPST = fields.Monetary(
digits=2, string="Valor do FCP retido por substituição tributária")
nfe_vICMSDeson = fields.Monetary(
digits=2, string="Valor do ICMS de desoneração")
nfe_motDesICMS = fields.Selection(
motDesICMSType23,
string="Motivo da desoneração do ICMS:3",
help=("Motivo da desoneração do ICMS:3-Uso na"
"agropecuária;9-Outros;12-Fomento agropecuário"))
class ICMS90(spec_models.AbstractSpecMixin):
"""Tributação pelo ICMS
90 - Outras"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icms90'
_generateds_type = 'ICMS90Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType24,
string="Tributção pelo ICMS", xsd_required=True,
help=("Tributção pelo ICMS"
"90 - Outras"))
nfe_modBC = fields.Selection(
modBCType25,
string="Modalidade de determinação da BC do ICMS",
help="Modalidade de determinação da BC do ICMS:")
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do ICMS")
nfe_pRedBC = fields.Monetary(
digits=2, string="Percentual de redução da BC")
nfe_pICMS = fields.Monetary(
digits=2, string="Alíquota do ICMS")
nfe_vICMS = fields.Monetary(
digits=2, string="Valor do ICMS")
nfe_vBCFCP = fields.Monetary(
digits=2, string="Valor da Base de cálculo do FCP.")
nfe_pFCP = fields.Monetary(
digits=2,
string="Percentual de ICMS relativo ao Fundo de Combate à Pobreza",
help=("Percentual de ICMS relativo ao Fundo de Combate à Pobreza"
"(FCP)."))
nfe_vFCP = fields.Monetary(
digits=2,
string="Valor do ICMS relativo ao Fundo de Combate à Pobreza",
help="Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).")
nfe_modBCST = fields.Selection(
modBCSTType26,
string="Modalidade de determinação da BC do ICMS ST",
help=("Modalidade de determinação da BC do ICMS ST:"
"0 – Preço tabelado ou máximo sugerido;"
"1 - Lista Negativa (valor);"
"2 - Lista Positiva (valor);"
"3 - Lista Neutra (valor);"
"4 - Margem Valor Agregado (%);"
"5 - Pauta (valor)."))
nfe_pMVAST = fields.Monetary(
digits=2, string="Percentual da Margem de Valor Adicionado ICMS ST")
nfe_pRedBCST = fields.Monetary(
digits=2, string="Percentual de redução da BC ICMS ST")
nfe_vBCST = fields.Monetary(
digits=2, string="Valor da BC do ICMS ST")
nfe_pICMSST = fields.Monetary(
digits=2, string="Alíquota do ICMS ST")
nfe_vICMSST = fields.Monetary(
digits=2, string="Valor do ICMS ST")
nfe_vBCFCPST = fields.Monetary(
digits=2, string="Valor da Base de cálculo do FCP.")
nfe_pFCPST = fields.Monetary(
digits=2,
string="Percentual de FCP retido por substituição tributária")
nfe_vFCPST = fields.Monetary(
digits=2, string="Valor do FCP retido por substituição tributária")
nfe_vICMSDeson = fields.Monetary(
digits=2, string="Valor do ICMS de desoneração")
nfe_motDesICMS = fields.Selection(
motDesICMSType27,
string="Motivo da desoneração do ICMS:3",
help=("Motivo da desoneração do ICMS:3-Uso na"
"agropecuária;9-Outros;12-Fomento agropecuário"))
class ICMSPart(spec_models.AbstractSpecMixin):
"""Partilha do ICMS entre a UF de origem e UF de destino ou a UF definida
na legislação
Operação interestadual para consumidor final com partilha do ICMS
devido na operação entre a UF de origem e a UF do destinatário ou
ou a UF definida na legislação. (Ex. UF da concessionária de
entrega do veículos)"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icmspart'
_generateds_type = 'ICMSPartType'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType28,
string="Tributação pelo ICMS", xsd_required=True,
help=("Tributação pelo ICMS"
"10 - Tributada e com cobrança do ICMS por substituição"
"tributária;"
"90 – Outros."))
nfe_modBC = fields.Selection(
modBCType29,
string="Modalidade de determinação da BC do ICMS",
xsd_required=True,
help="Modalidade de determinação da BC do ICMS:")
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do ICMS", xsd_required=True)
nfe_pRedBC = fields.Monetary(
digits=2, string="Percentual de redução da BC")
nfe_pICMS = fields.Monetary(
digits=2, string="Alíquota do ICMS", xsd_required=True)
nfe_vICMS = fields.Monetary(
digits=2, string="Valor do ICMS", xsd_required=True)
nfe_modBCST = fields.Selection(
modBCSTType30,
string="Modalidade de determinação da BC do ICMS ST",
xsd_required=True,
help=("Modalidade de determinação da BC do ICMS ST:"
"0 – Preço tabelado ou máximo sugerido;"
"1 - Lista Negativa (valor);"
"2 - Lista Positiva (valor);"
"3 - Lista Neutra (valor);"
"4 - Margem Valor Agregado (%);"
"5 - Pauta (valor)."))
nfe_pMVAST = fields.Monetary(
digits=2, string="Percentual da Margem de Valor Adicionado ICMS ST")
nfe_pRedBCST = fields.Monetary(
digits=2, string="Percentual de redução da BC ICMS ST")
nfe_vBCST = fields.Monetary(
digits=2, string="Valor da BC do ICMS ST",
xsd_required=True)
nfe_pICMSST = fields.Monetary(
digits=2, string="Alíquota do ICMS ST", xsd_required=True)
nfe_vICMSST = fields.Monetary(
digits=2, string="Valor do ICMS ST", xsd_required=True)
nfe_pBCOp = fields.Monetary(
digits=2, string="pBCOp", xsd_required=True,
help=("Percentual para determinação do valor da Base de Cálculo da"
"operação própria."))
nfe_UFST = fields.Selection(
TUf,
string="Sigla da UF para qual é devido o ICMS ST da operação",
xsd_required=True)
class ICMSSN101(spec_models.AbstractSpecMixin):
"Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=101 (v.2.0)"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icmssn101'
_generateds_type = 'ICMSSN101Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CSOSN = fields.Selection(
CSOSNType,
string="101", xsd_required=True,
help=("101- Tributada pelo Simples Nacional com permissão de crédito."
"(v.2.0)"))
nfe_pCredSN = fields.Monetary(
digits=2, string="Alíquota aplicável de cálculo do crédito",
xsd_required=True,
help=("Alíquota aplicável de cálculo do crédito (Simples Nacional)."
"(v2.0)"))
nfe_vCredICMSSN = fields.Monetary(
digits=2, string="vCredICMSSN", xsd_required=True,
help=("Valor crédito do ICMS que pode ser aproveitado nos termos do"
"art. 23 da LC 123 (Simples Nacional) (v2.0)"))
class ICMSSN102(spec_models.AbstractSpecMixin):
"""Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=102, 103, 300 ou 400
(v.2.0))"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icmssn102'
_generateds_type = 'ICMSSN102Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CSOSN = fields.Selection(
CSOSNType32,
string="102", xsd_required=True,
help=("102- Tributada pelo Simples Nacional sem permissão de crédito."
"103 – Isenção do ICMS no Simples Nacional para faixa de"
"receita bruta."
"300 – Imune."
"400 – Não tributda pelo Simples Nacional (v.2.0) (v.2.0)"))
class ICMSSN201(spec_models.AbstractSpecMixin):
"Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=201 (v.2.0)"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icmssn201'
_generateds_type = 'ICMSSN201Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="Origem da mercadoria", xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CSOSN = fields.Selection(
CSOSNType33,
string="201", xsd_required=True,
help=("201- Tributada pelo Simples Nacional com permissão de crédito"
"e com cobrança do ICMS por Substituição"
"Tributária (v.2.0)"))
nfe_modBCST = fields.Selection(
modBCSTType34,
string="Modalidade de determinação da BC do ICMS ST",
xsd_required=True,
help=("Modalidade de determinação da BC do ICMS ST:"
"0 – Preço tabelado ou máximo sugerido;"
"1 - Lista Negativa (valor);"
"2 - Lista Positiva (valor);"
"3 - Lista Neutra (valor);"
"4 - Margem Valor Agregado (%);"
"5 - Pauta (valor). (v2.0)"))
nfe_pMVAST = fields.Monetary(
digits=2, string="Percentual da Margem de Valor Adicionado ICMS ST",
help="Percentual da Margem de Valor Adicionado ICMS ST (v2.0)")
nfe_pRedBCST = fields.Monetary(
digits=2, string="Percentual de redução da BC ICMS ST",
help="Percentual de redução da BC ICMS ST (v2.0)")
nfe_vBCST = fields.Monetary(
digits=2, string="Valor da BC do ICMS ST (v2.0)",
xsd_required=True)
nfe_pICMSST = fields.Monetary(
digits=2, string="Alíquota do ICMS ST (v2.0)",
xsd_required=True)
nfe_vICMSST = fields.Monetary(
digits=2, string="Valor do ICMS ST (v2.0)",
xsd_required=True)
nfe_vBCFCPST = fields.Monetary(
digits=2, string="Valor da Base de cálculo do FCP.")
nfe_pFCPST = fields.Monetary(
digits=2,
string="Percentual de FCP retido por substituição tributária")
nfe_vFCPST = fields.Monetary(
digits=2, string="Valor do FCP retido por substituição tributária")
nfe_pCredSN = fields.Monetary(
digits=2, string="Alíquota aplicável de cálculo do crédito",
xsd_required=True,
help=("Alíquota aplicável de cálculo do crédito (Simples Nacional)."
"(v2.0)"))
nfe_vCredICMSSN = fields.Monetary(
digits=2, string="vCredICMSSN", xsd_required=True,
help=("Valor crédito do ICMS que pode ser aproveitado nos termos do"
"art. 23 da LC 123 (Simples Nacional) (v2.0)"))
class ICMSSN202(spec_models.AbstractSpecMixin):
"Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=202 ou 203 (v.2.0)"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icmssn202'
_generateds_type = 'ICMSSN202Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="Origem da mercadoria", xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CSOSN = fields.Selection(
CSOSNType35,
string="202", xsd_required=True,
help=("202- Tributada pelo Simples Nacional sem permissão de crédito"
"e com cobrança do ICMS por Substituição"
"Tributária;"
"203- Isenção do ICMS nos Simples Nacional para faixa de"
"receita bruta e com cobrança do ICMS por"
"Substituição Tributária (v.2.0)"))
nfe_modBCST = fields.Selection(
modBCSTType36,
string="Modalidade de determinação da BC do ICMS ST",
xsd_required=True,
help=("Modalidade de determinação da BC do ICMS ST:"
"0 – Preço tabelado ou máximo sugerido;"
"1 - Lista Negativa (valor);"
"2 - Lista Positiva (valor);"
"3 - Lista Neutra (valor);"
"4 - Margem Valor Agregado (%);"
"5 - Pauta (valor). (v2.0)"))
nfe_pMVAST = fields.Monetary(
digits=2, string="Percentual da Margem de Valor Adicionado ICMS ST",
help="Percentual da Margem de Valor Adicionado ICMS ST (v2.0)")
nfe_pRedBCST = fields.Monetary(
digits=2, string="Percentual de redução da BC ICMS ST",
help="Percentual de redução da BC ICMS ST (v2.0)")
nfe_vBCST = fields.Monetary(
digits=2, string="Valor da BC do ICMS ST (v2.0)",
xsd_required=True)
nfe_pICMSST = fields.Monetary(
digits=2, string="Alíquota do ICMS ST (v2.0)",
xsd_required=True)
nfe_vICMSST = fields.Monetary(
digits=2, string="Valor do ICMS ST (v2.0)",
xsd_required=True)
nfe_vBCFCPST = fields.Monetary(
digits=2, string="Valor da Base de cálculo do FCP.")
nfe_pFCPST = fields.Monetary(
digits=2,
string="Percentual de FCP retido por substituição tributária")
nfe_vFCPST = fields.Monetary(
digits=2, string="Valor do FCP retido por substituição tributária")
class ICMSSN500(spec_models.AbstractSpecMixin):
"""Tributação do ICMS pelo SIMPLES NACIONAL,CRT=1 – Simples Nacional e
CSOSN=500 (v.2.0)"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icmssn500'
_generateds_type = 'ICMSSN500Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CSOSN = fields.Selection(
CSOSNType37,
string="500 – ICMS cobrado anterirmente por substituição tributária",
xsd_required=True,
help=("500 – ICMS cobrado anterirmente por substituição tributária"
"(substituído) ou por antecipação"
"(v.2.0)"))
nfe_vBCSTRet = fields.Monetary(
digits=2, string="Valor da BC do ICMS ST retido anteriormente",
help="Valor da BC do ICMS ST retido anteriormente (v2.0)")
nfe_pST = fields.Monetary(
digits=2, string="Aliquota suportada pelo consumidor final")
nfe_vICMSSTRet = fields.Monetary(
digits=2, string="Valor do ICMS ST retido anteriormente",
help="Valor do ICMS ST retido anteriormente (v2.0)")
nfe_vBCFCPSTRet = fields.Monetary(
digits=2,
string="Valor da Base de cálculo do FCP retido anteriormente")
nfe_pFCPSTRet = fields.Monetary(
digits=2, string="pFCPSTRet",
help=("Percentual de FCP retido anteriormente por substituição"
"tributária."))
nfe_vFCPSTRet = fields.Monetary(
digits=2, string="Valor do FCP retido por substituição tributária")
nfe_pRedBCEfet = fields.Monetary(
digits=2, string="Percentual de redução da base de cálculo efetiva")
nfe_vBCEfet = fields.Monetary(
digits=2, string="Valor da base de cálculo efetiva.")
nfe_pICMSEfet = fields.Monetary(
digits=2, string="Alíquota do ICMS efetiva.")
nfe_vICMSEfet = fields.Monetary(
digits=2, string="Valor do ICMS efetivo.")
class ICMSSN900(spec_models.AbstractSpecMixin):
"""Tributação do ICMS pelo SIMPLES NACIONAL, CRT=1 – Simples Nacional e
CSOSN=900 (v2.0)"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icmssn900'
_generateds_type = 'ICMSSN900Type'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CSOSN = fields.Selection(
CSOSNType38,
string="Tributação pelo ICMS 900",
xsd_required=True,
help="Tributação pelo ICMS 900 - Outros(v2.0)")
nfe_modBC = fields.Selection(
modBCType39,
string="Modalidade de determinação da BC do ICMS",
help="Modalidade de determinação da BC do ICMS:")
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do ICMS")
nfe_pRedBC = fields.Monetary(
digits=2, string="Percentual de redução da BC")
nfe_pICMS = fields.Monetary(
digits=2, string="Alíquota do ICMS")
nfe_vICMS = fields.Monetary(
digits=2, string="Valor do ICMS")
nfe_modBCST = fields.Selection(
modBCSTType40,
string="Modalidade de determinação da BC do ICMS ST",
help=("Modalidade de determinação da BC do ICMS ST:"
"0 – Preço tabelado ou máximo sugerido;"
"1 - Lista Negativa (valor);"
"2 - Lista Positiva (valor);"
"3 - Lista Neutra (valor);"
"4 - Margem Valor Agregado (%);"
"5 - Pauta (valor)."))
nfe_pMVAST = fields.Monetary(
digits=2, string="Percentual da Margem de Valor Adicionado ICMS ST")
nfe_pRedBCST = fields.Monetary(
digits=2, string="Percentual de redução da BC ICMS ST")
nfe_vBCST = fields.Monetary(
digits=2, string="Valor da BC do ICMS ST")
nfe_pICMSST = fields.Monetary(
digits=2, string="Alíquota do ICMS ST")
nfe_vICMSST = fields.Monetary(
digits=2, string="Valor do ICMS ST")
nfe_vBCFCPST = fields.Monetary(
digits=2, string="Valor da Base de cálculo do FCP.")
nfe_pFCPST = fields.Monetary(
digits=2,
string="Percentual de FCP retido por substituição tributária")
nfe_vFCPST = fields.Monetary(
digits=2, string="Valor do FCP retido por substituição tributária")
nfe_pCredSN = fields.Monetary(
digits=2, string="Alíquota aplicável de cálculo do crédito",
help=("Alíquota aplicável de cálculo do crédito (Simples Nacional)."
"(v2.0)"))
nfe_vCredICMSSN = fields.Monetary(
digits=2, string="vCredICMSSN",
help=("Valor crédito do ICMS que pode ser aproveitado nos termos do"
"art. 23 da LC 123 (Simples Nacional) (v2.0)"))
class ICMSST(spec_models.AbstractSpecMixin):
"""Grupo de informação do ICMSST devido para a UF de destino, nas
operações interestaduais de produtos que tiveram retenção
antecipada de ICMS por ST na UF do remetente. Repasse via
Substituto Tributário."""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icmsst'
_generateds_type = 'ICMSSTType'
_concrete_class = None
_concrete_rec_name = 'nfe_orig'
nfe_orig = fields.Selection(
Torig,
string="origem da mercadoria: 0 - Nacional",
xsd_required=True,
help="Tipo Origem da mercadoria CST ICMS origem da mercadoria")
nfe_CST = fields.Selection(
CSTType31,
string="Tributção pelo ICMS", xsd_required=True,
help=("Tributção pelo ICMS"
"41-Não Tributado."
"60-Cobrado anteriormente por substituição tributária."))
nfe_vBCSTRet = fields.Monetary(
digits=2,
string="Informar o valor da BC do ICMS ST retido na UF remetente",
xsd_required=True)
nfe_vICMSSTRet = fields.Monetary(
digits=2, string="Informar o valor do ICMS ST retido na UF remetente",
xsd_required=True,
help="Informar o valor do ICMS ST retido na UF remetente (iv2.0))")
nfe_vBCSTDest = fields.Monetary(
digits=2, string="Informar o valor da BC do ICMS ST da UF destino",
xsd_required=True,
help="Informar o valor da BC do ICMS ST da UF destino")
nfe_vICMSSTDest = fields.Monetary(
digits=2, string="Informar o valor da BC do ICMS ST da UF destino",
xsd_required=True,
help="Informar o valor da BC do ICMS ST da UF destino (v2.0)")
class ICMSTot(spec_models.AbstractSpecMixin):
"Totais referentes ao ICMS"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icmstot'
_generateds_type = 'ICMSTotType'
_concrete_class = None
_concrete_rec_name = 'nfe_vBC'
nfe_vBC = fields.Monetary(
digits=2, string="BC do ICMS", xsd_required=True)
nfe_vICMS = fields.Monetary(
digits=2, string="Valor Total do ICMS", xsd_required=True)
nfe_vICMSDeson = fields.Monetary(
digits=2, string="Valor Total do ICMS desonerado",
xsd_required=True)
nfe_vFCPUFDest = fields.Monetary(
digits=2,
string="Valor total do ICMS relativo ao Fundo de Combate à Pobreza",
help=("Valor total do ICMS relativo ao Fundo de Combate à Pobreza"
"(FCP) para a UF de destino."))
nfe_vICMSUFDest = fields.Monetary(
digits=2,
string="Valor total do ICMS de partilha para a UF do destinatário")
nfe_vICMSUFRemet = fields.Monetary(
digits=2,
string="Valor total do ICMS de partilha para a UF do remetente")
nfe_vFCP = fields.Monetary(
digits=2, string="Valor Total do FCP", xsd_required=True,
help="Valor Total do FCP (Fundo de Combate à Pobreza).")
nfe_vBCST = fields.Monetary(
digits=2, string="BC do ICMS ST", xsd_required=True)
nfe_vST = fields.Monetary(
digits=2, string="Valor Total do ICMS ST", xsd_required=True)
nfe_vFCPST = fields.Monetary(
digits=2, string="Valor Total do FCP", xsd_required=True,
help=("Valor Total do FCP (Fundo de Combate à Pobreza) retido por"
"substituição tributária."))
nfe_vFCPSTRet = fields.Monetary(
digits=2, string="Valor Total do FCP",
xsd_required=True,
help=("Valor Total do FCP (Fundo de Combate à Pobreza) retido"
"anteriormente por substituição tributária."))
nfe_vProd = fields.Monetary(
digits=2, string="Valor Total dos produtos e serviços",
xsd_required=True)
nfe_vFrete = fields.Monetary(
digits=2, string="Valor Total do Frete", xsd_required=True)
nfe_vSeg = fields.Monetary(
digits=2, string="Valor Total do Seguro", xsd_required=True)
nfe_vDesc = fields.Monetary(
digits=2, string="Valor Total do Desconto",
xsd_required=True)
nfe_vII = fields.Monetary(
digits=2, string="Valor Total do II", xsd_required=True)
nfe_vIPI = fields.Monetary(
digits=2, string="Valor Total do IPI", xsd_required=True)
nfe_vIPIDevol = fields.Monetary(
digits=2, string="Valor Total do IPI devolvido",
xsd_required=True,
help=("Valor Total do IPI devolvido. Deve ser informado quando"
"preenchido o Grupo Tributos Devolvidos na"
"emissão de nota finNFe=4 (devolução) nas"
"operações com não contribuintes do IPI."
"Corresponde ao total da soma dos campos id:"
"UA04."))
nfe_vPIS = fields.Monetary(
digits=2, string="Valor do PIS", xsd_required=True)
nfe_vCOFINS = fields.Monetary(
digits=2, string="Valor do COFINS", xsd_required=True)
nfe_vOutro = fields.Monetary(
digits=2, string="Outras Despesas acessórias",
xsd_required=True)
nfe_vNF = fields.Monetary(
digits=2, string="Valor Total da NF-e", xsd_required=True)
nfe_vTotTrib = fields.Monetary(
digits=2, string="Valor estimado total de impostos federais",
help=("Valor estimado total de impostos federais, estaduais e"
"municipais"))
class ICMS(spec_models.AbstractSpecMixin):
"Dados do ICMS Normal e ST"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icms'
_generateds_type = 'ICMSType'
_concrete_class = None
_concrete_rec_name = 'nfe_ICMS00'
nfe_choice11 = fields.Selection([
('nfe_ICMS00', 'ICMS00'),
('nfe_ICMS10', 'ICMS10'),
('nfe_ICMS20', 'ICMS20'),
('nfe_ICMS30', 'ICMS30'),
('nfe_ICMS40', 'ICMS40'),
('nfe_ICMS51', 'ICMS51'),
('nfe_ICMS60', 'ICMS60'),
('nfe_ICMS70', 'ICMS70'),
('nfe_ICMS90', 'ICMS90'),
('nfe_ICMSPart', 'ICMSPart'),
('nfe_ICMSST', 'ICMSST'),
('nfe_ICMSSN101', 'ICMSSN101'),
('nfe_ICMSSN102', 'ICMSSN102'),
('nfe_ICMSSN201', 'ICMSSN201'),
('nfe_ICMSSN202', 'ICMSSN202'),
('nfe_ICMSSN500', 'ICMSSN500'),
('nfe_ICMSSN900', 'ICMSSN900')],
"ICMS00/ICMS10/ICMS20/ICMS30/ICMS40/ICMS51/ICMS60/I...",
default="nfe_ICMS00")
nfe_ICMS00 = fields.Many2one(
"nfe.v4_00.icms00",
choice='11',
string="Tributação pelo ICMS", xsd_required=True,
help=("Tributação pelo ICMS"
"00 - Tributada integralmente"))
nfe_ICMS10 = fields.Many2one(
"nfe.v4_00.icms10",
choice='11',
string="Tributação pelo ICMS", xsd_required=True,
help=("Tributação pelo ICMS"
"10 - Tributada e com cobrança do ICMS por substituição"
"tributária"))
nfe_ICMS20 = fields.Many2one(
"nfe.v4_00.icms20",
choice='11',
string="Tributção pelo ICMS", xsd_required=True,
help=("Tributção pelo ICMS"
"20 - Com redução de base de cálculo"))
nfe_ICMS30 = fields.Many2one(
"nfe.v4_00.icms30",
choice='11',
string="Tributação pelo ICMS", xsd_required=True,
help=("Tributação pelo ICMS"
"30 - Isenta ou não tributada e com cobrança do ICMS por"
"substituição tributária"))
nfe_ICMS40 = fields.Many2one(
"nfe.v4_00.icms40",
choice='11',
string="Tributação pelo ICMS", xsd_required=True,
help=("Tributação pelo ICMS"
"40 - Isenta"
"41 - Não tributada"
"50 - Suspensão"))
nfe_ICMS51 = fields.Many2one(
"nfe.v4_00.icms51",
choice='11',
string="Tributção pelo ICMS", xsd_required=True,
help=("Tributção pelo ICMS"
"51 - Diferimento"
"A exigência do preenchimento das informações do ICMS diferido"
"fica à critério de cada UF."))
nfe_ICMS60 = fields.Many2one(
"nfe.v4_00.icms60",
choice='11',
string="Tributação pelo ICMS", xsd_required=True,
help=("Tributação pelo ICMS"
"60 - ICMS cobrado anteriormente por substituição tributária"))
nfe_ICMS70 = fields.Many2one(
"nfe.v4_00.icms70",
choice='11',
string="Tributação pelo ICMS", xsd_required=True,
help=("Tributação pelo ICMS"
"70 - Com redução de base de cálculo e cobrança do ICMS por"
"substituição tributária"))
nfe_ICMS90 = fields.Many2one(
"nfe.v4_00.icms90",
choice='11',
string="Tributação pelo ICMS", xsd_required=True,
help=("Tributação pelo ICMS"
"90 - Outras"))
nfe_ICMSPart = fields.Many2one(
"nfe.v4_00.icmspart",
choice='11',
string="ICMSPart", xsd_required=True,
help=("Partilha do ICMS entre a UF de origem e UF de destino ou a UF"
"definida na legislação"
"Operação interestadual para consumidor final com partilha do"
"ICMS devido na operação entre a UF de origem e a"
"UF do destinatário ou ou a UF definida na"
"legislação. (Ex. UF da concessionária de entrega"
"do veículos)"))
nfe_ICMSST = fields.Many2one(
"nfe.v4_00.icmsst",
choice='11',
string="Grupo de informação do ICMSST devido para a UF de destino",
xsd_required=True,
help=("Grupo de informação do ICMSST devido para a UF de destino, nas"
"operações interestaduais de produtos que tiveram"
"retenção antecipada de ICMS por ST na UF do"
"remetente. Repasse via Substituto Tributário."))
nfe_ICMSSN101 = fields.Many2one(
"nfe.v4_00.icmssn101",
choice='11',
string="Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=101",
xsd_required=True,
help="Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=101 (v.2.0)")
nfe_ICMSSN102 = fields.Many2one(
"nfe.v4_00.icmssn102",
choice='11',
string="Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=102",
xsd_required=True,
help=("Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=102, 103, 300"
"ou 400 (v.2.0))"))
nfe_ICMSSN201 = fields.Many2one(
"nfe.v4_00.icmssn201",
choice='11',
string="Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=201",
xsd_required=True,
help="Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=201 (v.2.0)")
nfe_ICMSSN202 = fields.Many2one(
"nfe.v4_00.icmssn202",
choice='11',
string="Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=202 ou 203",
xsd_required=True,
help=("Tributação do ICMS pelo SIMPLES NACIONAL e CSOSN=202 ou 203"
"(v.2.0)"))
nfe_ICMSSN500 = fields.Many2one(
"nfe.v4_00.icmssn500",
choice='11',
string="Tributação do ICMS pelo SIMPLES NACIONAL",
xsd_required=True,
help=("Tributação do ICMS pelo SIMPLES NACIONAL,CRT=1 – Simples"
"Nacional e CSOSN=500 (v.2.0)"))
nfe_ICMSSN900 = fields.Many2one(
"nfe.v4_00.icmssn900",
choice='11',
string="Tributação do ICMS pelo SIMPLES NACIONAL",
xsd_required=True,
help=("Tributação do ICMS pelo SIMPLES NACIONAL, CRT=1 – Simples"
"Nacional e CSOSN=900 (v2.0)"))
class ICMSUFDest(spec_models.AbstractSpecMixin):
"""Grupo a ser informado nas vendas interestarduais para consumidor final,
não contribuinte de ICMS"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.icmsufdest'
_generateds_type = 'ICMSUFDestType'
_concrete_class = None
_concrete_rec_name = 'nfe_vBCUFDest'
nfe_vBCUFDest = fields.Monetary(
digits=2,
string="Valor da Base de Cálculo do ICMS na UF do destinatário",
xsd_required=True)
nfe_vBCFCPUFDest = fields.Monetary(
digits=2,
string="Valor da Base de Cálculo do FCP na UF do destinatário")
nfe_pFCPUFDest = fields.Monetary(
digits=2, string="pFCPUFDest",
help=("Percentual adicional inserido na alíquota interna da UF de"
"destino, relativo ao Fundo de Combate à Pobreza"
"(FCP) naquela UF."))
nfe_pICMSUFDest = fields.Monetary(
digits=2, string="pICMSUFDest", xsd_required=True,
help=("Alíquota adotada nas operações internas na UF do destinatário"
"para o produto / mercadoria."))
nfe_pICMSInter = fields.Selection(
pICMSInterType,
string="Alíquota interestadual das UF envolvidas",
xsd_required=True,
help=("Alíquota interestadual das UF envolvidas"
"- 4% alíquota interestadual para produtos importados"
"- 7% para os Estados de origem do Sul e Sudeste (exceto ES),"
"destinado para os Estados do Norte e Nordeste ou"
"ES"
"- 12% para os demais casos."))
nfe_pICMSInterPart = fields.Monetary(
digits=2, string="Percentual de partilha para a UF do destinatário",
xsd_required=True,
help=("Percentual de partilha para a UF do destinatário: - 40% em"
"2016; - 60% em 2017; - 80% em 2018; - 100% a"
"partir de 2019."))
nfe_vFCPUFDest = fields.Monetary(
digits=2,
string="Valor do ICMS relativo ao Fundo de Combate à Pobreza",
help=("Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP) da"
"UF de destino."))
nfe_vICMSUFDest = fields.Monetary(
digits=2,
string="Valor do ICMS de partilha para a UF do destinatário",
xsd_required=True)
nfe_vICMSUFRemet = fields.Monetary(
digits=2, string="Valor do ICMS de partilha para a UF do remetente",
xsd_required=True,
help=("Valor do ICMS de partilha para a UF do remetente. Nota: A"
"partir de 2019, este valor será zero."))
class II(spec_models.AbstractSpecMixin):
"Dados do Imposto de Importação"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.ii'
_generateds_type = 'IIType'
_concrete_class = None
_concrete_rec_name = 'nfe_vBC'
nfe_vBC = fields.Monetary(
digits=2, string="Base da BC do Imposto de Importação",
xsd_required=True)
nfe_vDespAdu = fields.Monetary(
digits=2, string="Valor das despesas aduaneiras",
xsd_required=True)
nfe_vII = fields.Monetary(
digits=2, string="Valor do Imposto de Importação",
xsd_required=True)
nfe_vIOF = fields.Monetary(
digits=2, string="Valor do Imposto sobre Operações Financeiras",
xsd_required=True)
class IPINT(spec_models.AbstractSpecMixin):
_description = 'ipint'
_name = 'nfe.v4_00.ipint'
_generateds_type = 'IPINTType'
_concrete_class = None
_concrete_rec_name = 'nfe_CST'
nfe_CST = fields.Selection(
CSTType71,
string="Código da Situação Tributária do IPI",
xsd_required=True,
help=("Código da Situação Tributária do IPI:"
"01-Entrada tributada com alíquota zero"
"02-Entrada isenta"
"03-Entrada não-tributada"
"04-Entrada imune"
"05-Entrada com suspensão"
"51-Saída tributada com alíquota zero"
"52-Saída isenta"
"53-Saída não-tributada"
"54-Saída imune"
"55-Saída com suspensão"))
class IPITrib(spec_models.AbstractSpecMixin):
_description = 'ipitrib'
_name = 'nfe.v4_00.ipitrib'
_generateds_type = 'IPITribType'
_concrete_class = None
_concrete_rec_name = 'nfe_CST'
nfe_choice20 = fields.Selection([
('nfe_vBC', 'vBC'),
('nfe_pIPI', 'pIPI'),
('nfe_qUnid', 'qUnid'),
('nfe_vUnid', 'vUnid')],
"vBC/pIPI/qUnid/vUnid",
default="nfe_vBC")
nfe_CST = fields.Selection(
CSTType70,
string="Código da Situação Tributária do IPI",
xsd_required=True,
help=("Código da Situação Tributária do IPI:"
"00-Entrada com recuperação de crédito"
"49 - Outras entradas"
"50-Saída tributada"
"99-Outras saídas"))
nfe_vBC = fields.Monetary(
digits=2, choice='20',
string="Valor da BC do IPI", xsd_required=True)
nfe_pIPI = fields.Monetary(
digits=2, choice='20',
string="Alíquota do IPI", xsd_required=True)
nfe_qUnid = fields.Monetary(
digits=4, choice='20',
string="Quantidade total na unidade padrão para tributação",
xsd_required=True)
nfe_vUnid = fields.Monetary(
digits=4, choice='20',
string="Valor por Unidade Tributável",
xsd_required=True,
help=("Valor por Unidade Tributável. Informar o valor do imposto"
"Pauta por unidade de medida."))
nfe_vIPI = fields.Monetary(
digits=2, string="Valor do IPI", xsd_required=True)
class IPI(spec_models.AbstractSpecMixin):
_description = 'ipi'
_name = 'nfe.v4_00.ipi'
_generateds_type = 'IPIType'
_concrete_class = None
_concrete_rec_name = 'nfe_vIPIDevol'
nfe_vIPIDevol = fields.Monetary(
digits=2, string="Valor do IPI devolvido",
xsd_required=True)
class ISSQN(spec_models.AbstractSpecMixin):
"ISSQN"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.issqn'
_generateds_type = 'ISSQNType'
_concrete_class = None
_concrete_rec_name = 'nfe_vBC'
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do ISSQN", xsd_required=True)
nfe_vAliq = fields.Monetary(
digits=2, string="Alíquota do ISSQN", xsd_required=True)
nfe_vISSQN = fields.Monetary(
digits=2, string="Valor da do ISSQN", xsd_required=True)
nfe_cMunFG = fields.Char(
string="Informar o município de ocorrência do fato gerador do ISSQN",
xsd_required=True,
help=("Informar o município de ocorrência do fato gerador do ISSQN."
"Utilizar a Tabela do IBGE (Anexo VII - Tabela de"
"UF, Município e País). “Atenção, não vincular"
"com os campos B12, C10 ou E10” v2.0"))
nfe_cListServ = fields.Selection(
TCListServ,
string="cListServ", xsd_required=True,
help=("Informar o Item da lista de serviços da LC 116/03 em que se"
"classifica o serviço."))
nfe_vDeducao = fields.Monetary(
digits=2, string="Valor dedução para redução da base de cálculo")
nfe_vOutro = fields.Monetary(
digits=2, string="Valor outras retenções")
nfe_vDescIncond = fields.Monetary(
digits=2, string="Valor desconto incondicionado")
nfe_vDescCond = fields.Monetary(
digits=2, string="Valor desconto condicionado")
nfe_vISSRet = fields.Monetary(
digits=2, string="Valor Retenção ISS")
nfe_indISS = fields.Selection(
indISSType,
string="Exibilidade do ISS:1", xsd_required=True,
help=("Exibilidade do ISS:1-Exigível;2-Não"
"incidente;3-Isenção;4-Exportação;5-Imunidade;6-E"
"xig.Susp. Judicial;7-Exig.Susp. ADM"))
nfe_cServico = fields.Char(
string="Código do serviço prestado dentro do município")
nfe_cMun = fields.Char(
string="Código do Município de Incidência do Imposto")
nfe_cPais = fields.Char(
string="Código de Pais")
nfe_nProcesso = fields.Char(
string="nProcesso",
help=("Número do Processo administrativo ou judicial de suspenção do"
"processo"))
nfe_indIncentivo = fields.Selection(
indIncentivoType,
string="Indicador de Incentivo Fiscal",
xsd_required=True,
help="Indicador de Incentivo Fiscal. 1=Sim; 2=Não")
class ISSQNtot(spec_models.AbstractSpecMixin):
"Totais referentes ao ISSQN"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.issqntot'
_generateds_type = 'ISSQNtotType'
_concrete_class = None
_concrete_rec_name = 'nfe_vServ'
nfe_vServ = fields.Monetary(
digits=2, string="Valor Total dos Serviços sob não",
help=("Valor Total dos Serviços sob não-incidência ou não tributados"
"pelo ICMS"))
nfe_vBC = fields.Monetary(
digits=2, string="Base de Cálculo do ISS")
nfe_vISS = fields.Monetary(
digits=2, string="Valor Total do ISS")
nfe_vPIS = fields.Monetary(
digits=2, string="Valor do PIS sobre serviços")
nfe_vCOFINS = fields.Monetary(
digits=2, string="Valor do COFINS sobre serviços")
nfe_dCompet = fields.Char(
string="Data da prestação do serviço",
xsd_required=True,
help="Data da prestação do serviço (AAAA-MM-DD)")
nfe_vDeducao = fields.Monetary(
digits=2, string="Valor dedução para redução da base de cálculo")
nfe_vOutro = fields.Monetary(
digits=2, string="Valor outras retenções")
nfe_vDescIncond = fields.Monetary(
digits=2, string="Valor desconto incondicionado")
nfe_vDescCond = fields.Monetary(
digits=2, string="Valor desconto condicionado")
nfe_vISSRet = fields.Monetary(
digits=2, string="Valor Total Retenção ISS")
nfe_cRegTrib = fields.Selection(
cRegTribType,
string="Código do regime especial de tributação")
class KeyInfo(spec_models.AbstractSpecMixin):
_description = 'keyinfo'
_name = 'nfe.v4_00.keyinfo'
_generateds_type = 'KeyInfoType'
_concrete_class = None
_concrete_rec_name = 'nfe_Id'
nfe_Id = fields.Char(
string="Id")
nfe_X509Data = fields.Many2one(
"nfe.v4_00.x509data",
string="X509Data", xsd_required=True)
class NFref(spec_models.AbstractSpecMixin):
"Grupo de infromações da NF referenciada"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.nfref'
_generateds_type = 'NFrefType'
_concrete_class = None
_concrete_rec_name = 'nfe_refNFe'
nfe_NFref_ide_id = fields.Many2one(
"nfe.v4_00.ide")
nfe_choice4 = fields.Selection([
('nfe_refNFe', 'refNFe'),
('nfe_refNF', 'refNF'),
('nfe_refNFP', 'refNFP'),
('nfe_refCTe', 'refCTe'),
('nfe_refECF', 'refECF')],
"refNFe/refNF/refNFP/refCTe/refECF",
default="nfe_refNFe")
nfe_refNFe = fields.Char(
choice='4',
string="Chave de acesso das NF",
xsd_required=True,
help=("Chave de acesso das NF-e referenciadas. Chave de acesso"
"compostas por Código da UF (tabela do IBGE) +"
"AAMM da emissão + CNPJ do Emitente + modelo,"
"série e número da NF-e Referenciada + Código"
"Numérico + DV."))
nfe_refNF = fields.Many2one(
"nfe.v4_00.refnf",
choice='4',
string="refNF", xsd_required=True,
help=("Dados da NF modelo 1/1A referenciada ou NF modelo 2"
"referenciada"))
nfe_refNFP = fields.Many2one(
"nfe.v4_00.refnfp",
choice='4',
string="Grupo com as informações NF de produtor referenciada",
xsd_required=True)
nfe_refCTe = fields.Char(
choice='4',
string="Utilizar esta TAG para referenciar um CT",
xsd_required=True,
help=("Utilizar esta TAG para referenciar um CT-e emitido"
"anteriormente, vinculada a NF-e atual"))
nfe_refECF = fields.Many2one(
"nfe.v4_00.refecf",
choice='4',
string="Grupo do Cupom Fiscal vinculado à NF",
xsd_required=True,
help="Grupo do Cupom Fiscal vinculado à NF-e")
class PISAliq(spec_models.AbstractSpecMixin):
"""Código de Situação Tributária do PIS.
01 – Operação Tributável - Base de Cálculo = Valor da Operação
Alíquota Normal (Cumulativo/Não Cumulativo);
02 - Operação Tributável - Base de Calculo = Valor da Operação
(Alíquota Diferenciada);"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.pisaliq'
_generateds_type = 'PISAliqType'
_concrete_class = None
_concrete_rec_name = 'nfe_CST'
nfe_CST = fields.Selection(
CSTType41,
string="Código de Situação Tributária do PIS",
xsd_required=True,
help=("Código de Situação Tributária do PIS."
"01 – Operação Tributável - Base de Cálculo = Valor da Operação"
"Alíquota Normal (Cumulativo/Não Cumulativo);"
"02 - Operação Tributável - Base de Calculo = Valor da Operação"
"(Alíquota Diferenciada);"))
nfe_vBC = fields.Monetary(
digits=2, string="Valor da BC do PIS", xsd_required=True)
nfe_pPIS = fields.Monetary(
digits=2, string="Alíquota do PIS (em percentual)",
xsd_required=True)
nfe_vPIS = fields.Monetary(
digits=2, string="Valor do PIS", xsd_required=True)
class PISNT(spec_models.AbstractSpecMixin):
"""Código de Situação Tributária do PIS.
04 - Operação Tributável - Tributação Monofásica - (Alíquota Zero);
06 - Operação Tributável - Alíquota Zero;
07 - Operação Isenta da contribuição;
08 - Operação Sem Incidência da contribuição;
09 - Operação com suspensão da contribuição;"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.pisnt'
_generateds_type = 'PISNTType'
_concrete_class = None
_concrete_rec_name = 'nfe_CST'
nfe_CST = fields.Selection(
CSTType43,
string="Código de Situação Tributária do PIS",
xsd_required=True,
help=("Código de Situação Tributária do PIS."
"04 - Operação Tributável - Tributação Monofásica - (Alíquota"
"Zero);"
"05 - Operação Tributável (ST);"
"06 - Operação Tributável - Alíquota Zero;"
"07 - Operação Isenta da contribuição;"
"08 - Operação Sem Incidência da contribuição;"
"09 - Operação com suspensão da contribuição;"))
class PISOutr(spec_models.AbstractSpecMixin):
"""Código de Situação Tributária do PIS.
99 - Outras Operações."""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.pisoutr'
_generateds_type = 'PISOutrType'
_concrete_class = None
_concrete_rec_name = 'nfe_CST'
nfe_choice13 = fields.Selection([
('nfe_vBC', 'vBC'),
('nfe_pPIS', 'pPIS'),
('nfe_qBCProd', 'qBCProd'),
('nfe_vAliqProd', 'vAliqProd')],
"vBC/pPIS/qBCProd/vAliqProd",
default="nfe_vBC")
nfe_CST = fields.Selection(
CSTType44,
string="Código de Situação Tributária do PIS",
xsd_required=True,
help=("Código de Situação Tributária do PIS."
"99 - Outras Operações."))
nfe_vBC = fields.Monetary(
digits=2, choice='13',
string="Valor da BC do PIS", xsd_required=True)
nfe_pPIS = fields.Monetary(
digits=2, choice='13',
string="Alíquota do PIS (em percentual)",
xsd_required=True)
nfe_qBCProd = fields.Monetary(
digits=4, choice='13',
string="Quantidade Vendida (NT2011/004)",
xsd_required=True)
nfe_vAliqProd = fields.Monetary(
digits=4, choice='13',
string="Alíquota do PIS", xsd_required=True,
help="Alíquota do PIS (em reais) (NT2011/004)")
nfe_vPIS = fields.Monetary(
digits=2, string="Valor do PIS", xsd_required=True)
class PISQtde(spec_models.AbstractSpecMixin):
"""Código de Situação Tributária do PIS.
03 - Operação Tributável - Base de Calculo = Quantidade Vendida x
Alíquota por Unidade de Produto;"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.pisqtde'
_generateds_type = 'PISQtdeType'
_concrete_class = None
_concrete_rec_name = 'nfe_CST'
nfe_CST = fields.Selection(
CSTType42,
string="Código de Situação Tributária do PIS",
xsd_required=True,
help=("Código de Situação Tributária do PIS."
"03 - Operação Tributável - Base de Calculo = Quantidade"
"Vendida x Alíquota por Unidade de Produto;"))
nfe_qBCProd = fields.Monetary(
digits=4, string="Quantidade Vendida (NT2011/004)",
xsd_required=True,
help="Quantidade Vendida (NT2011/004)")
nfe_vAliqProd = fields.Monetary(
digits=4, string="Alíquota do PIS", xsd_required=True,
help="Alíquota do PIS (em reais) (NT2011/004)")
nfe_vPIS = fields.Monetary(
digits=2, string="Valor do PIS", xsd_required=True)
class PISST(spec_models.AbstractSpecMixin):
"Dados do PIS Substituição Tributária"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.pisst'
_generateds_type = 'PISSTType'
_concrete_class = None
_concrete_rec_name = 'nfe_vBC'
nfe_choice14 = fields.Selection([
('nfe_vBC', 'vBC'),
('nfe_pPIS', 'pPIS'),
('nfe_qBCProd', 'qBCProd'),
('nfe_vAliqProd', 'vAliqProd')],
"vBC/pPIS/qBCProd/vAliqProd",
default="nfe_vBC")
nfe_vBC = fields.Monetary(
digits=2, choice='14',
string="Valor da BC do PIS ST", xsd_required=True)
nfe_pPIS = fields.Monetary(
digits=2, choice='14',
string="Alíquota do PIS ST (em percentual)",
xsd_required=True)
nfe_qBCProd = fields.Monetary(
digits=4, choice='14',
string="Quantidade Vendida", xsd_required=True)
nfe_vAliqProd = fields.Monetary(
digits=4, choice='14',
string="Alíquota do PIS ST (em reais)",
xsd_required=True)
nfe_vPIS = fields.Monetary(
digits=2, string="Valor do PIS ST", xsd_required=True)
class PIS(spec_models.AbstractSpecMixin):
"Dados do PIS"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.pis'
_generateds_type = 'PISType'
_concrete_class = None
_concrete_rec_name = 'nfe_PISAliq'
nfe_choice12 = fields.Selection([
('nfe_PISAliq', 'PISAliq'),
('nfe_PISQtde', 'PISQtde'),
('nfe_PISNT', 'PISNT'),
('nfe_PISOutr', 'PISOutr')],
"PISAliq/PISQtde/PISNT/PISOutr",
default="nfe_PISAliq")
nfe_PISAliq = fields.Many2one(
"nfe.v4_00.pisaliq",
choice='12',
string="Código de Situação Tributária do PIS",
xsd_required=True,
help=("Código de Situação Tributária do PIS."
"01 – Operação Tributável - Base de Cálculo = Valor da Operação"
"Alíquota Normal (Cumulativo/Não Cumulativo);"
"02 - Operação Tributável - Base de Calculo = Valor da Operação"
"(Alíquota Diferenciada);"))
nfe_PISQtde = fields.Many2one(
"nfe.v4_00.pisqtde",
choice='12',
string="Código de Situação Tributária do PIS",
xsd_required=True,
help=("Código de Situação Tributária do PIS."
"03 - Operação Tributável - Base de Calculo = Quantidade"
"Vendida x Alíquota por Unidade de Produto;"))
nfe_PISNT = fields.Many2one(
"nfe.v4_00.pisnt",
choice='12',
string="Código de Situação Tributária do PIS",
xsd_required=True,
help=("Código de Situação Tributária do PIS."
"04 - Operação Tributável - Tributação Monofásica - (Alíquota"
"Zero);"
"06 - Operação Tributável - Alíquota Zero;"
"07 - Operação Isenta da contribuição;"
"08 - Operação Sem Incidência da contribuição;"
"09 - Operação com suspensão da contribuição;"))
nfe_PISOutr = fields.Many2one(
"nfe.v4_00.pisoutr",
choice='12',
string="Código de Situação Tributária do PIS",
xsd_required=True,
help=("Código de Situação Tributária do PIS."
"99 - Outras Operações."))
class Reference(spec_models.AbstractSpecMixin):
_description = 'reference'
_name = 'nfe.v4_00.reference'
_generateds_type = 'ReferenceType'
_concrete_class = None
_concrete_rec_name = 'nfe_Id'
nfe_Id = fields.Char(
string="Id")
nfe_URI = fields.Char(
string="URI", xsd_required=True)
nfe_Type = fields.Char(
string="Type")
nfe_Transforms = fields.Many2one(
"nfe.v4_00.transforms",
string="Transforms", xsd_required=True)
nfe_DigestMethod = fields.Many2one(
"nfe.v4_00.digestmethod",
string="DigestMethod", xsd_required=True)
nfe_DigestValue = fields.Char(
string="DigestValue", xsd_required=True)
class SignatureMethod(spec_models.AbstractSpecMixin):
_description = 'signaturemethod'
_name = 'nfe.v4_00.signaturemethod'
_generateds_type = 'SignatureMethodType'
_concrete_class = None
_concrete_rec_name = 'nfe_Algorithm'
nfe_Algorithm = fields.Char(
string="Algorithm", xsd_required=True)
class Signature(spec_models.AbstractSpecMixin):
_description = 'signature'
_name = 'nfe.v4_00.signature'
_generateds_type = 'SignatureType'
_concrete_class = None
_concrete_rec_name = 'nfe_Id'
nfe_Id = fields.Char(
string="Id")
nfe_SignedInfo = fields.Many2one(
"nfe.v4_00.signedinfo",
string="SignedInfo", xsd_required=True)
nfe_SignatureValue = fields.Many2one(
"nfe.v4_00.signaturevalue",
string="SignatureValue",
xsd_required=True)
nfe_KeyInfo = fields.Many2one(
"nfe.v4_00.keyinfo",
string="KeyInfo", xsd_required=True)
class SignatureValue(spec_models.AbstractSpecMixin):
_description = 'signaturevalue'
_name = 'nfe.v4_00.signaturevalue'
_generateds_type = 'SignatureValueType'
_concrete_class = None
_concrete_rec_name = 'nfe_Id'
nfe_Id = fields.Char(
string="Id")
nfe_valueOf_x = fields.Char(
string="valueOf_", xsd_required=True)
class SignedInfo(spec_models.AbstractSpecMixin):
_description = 'signedinfo'
_name = 'nfe.v4_00.signedinfo'
_generateds_type = 'SignedInfoType'
_concrete_class = None
_concrete_rec_name = 'nfe_Id'
nfe_Id = fields.Char(
string="Id")
nfe_CanonicalizationMethod = fields.Many2one(
"nfe.v4_00.canonicalizationmethod",
string="CanonicalizationMethod",
xsd_required=True)
nfe_SignatureMethod = fields.Many2one(
"nfe.v4_00.signaturemethod",
string="SignatureMethod",
xsd_required=True)
nfe_Reference = fields.Many2one(
"nfe.v4_00.reference",
string="Reference", xsd_required=True)
class TConsReciNFe(spec_models.AbstractSpecMixin):
"""Tipo Pedido de Consulta do Recido do Lote de Notas Fiscais
Eletrônicas"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tconsrecinfe'
_generateds_type = 'TConsReciNFe'
_concrete_class = None
_concrete_rec_name = 'nfe_versao'
nfe_versao = fields.Char(
string="versao", xsd_required=True)
nfe_tpAmb = fields.Selection(
TAmb,
string="Identificação do Ambiente",
xsd_required=True,
help=("Identificação do Ambiente:"
"1 - Produção"
"2 - Homologação"))
nfe_nRec = fields.Char(
string="Número do Recibo", xsd_required=True)
class TEnderEmi(spec_models.AbstractSpecMixin):
"""Tipo Dados do Endereço do Emitente // 24/10/08 - desmembrado / tamanho
mínimo"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tenderemi'
_generateds_type = 'TEnderEmi'
_concrete_class = None
_concrete_rec_name = 'nfe_xLgr'
nfe_xLgr = fields.Char(
string="Logradouro", xsd_required=True)
nfe_nro = fields.Char(
string="Número", xsd_required=True)
nfe_xCpl = fields.Char(
string="Complemento")
nfe_xBairro = fields.Char(
string="Bairro", xsd_required=True)
nfe_cMun = fields.Char(
string="Código do município", xsd_required=True)
nfe_xMun = fields.Char(
string="Nome do município", xsd_required=True)
nfe_UF = fields.Selection(
TUfEmi,
string="Sigla da UF", xsd_required=True)
nfe_CEP = fields.Char(
string="CEP - NT 2011/004", xsd_required=True)
nfe_cPais = fields.Selection(
cPaisType62,
string="Código do país")
nfe_xPais = fields.Selection(
xPaisType63,
string="Nome do país")
nfe_fone = fields.Char(
string="Preencher com Código DDD + número do telefone",
help="Preencher com Código DDD + número do telefone (v.2.0)")
class TEndereco(spec_models.AbstractSpecMixin):
"Tipo Dados do Endereço // 24/10/08 - tamanho mínimo"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tendereco'
_generateds_type = 'TEndereco'
_concrete_class = None
_concrete_rec_name = 'nfe_xLgr'
nfe_xLgr = fields.Char(
string="Logradouro", xsd_required=True)
nfe_nro = fields.Char(
string="Número", xsd_required=True)
nfe_xCpl = fields.Char(
string="Complemento")
nfe_xBairro = fields.Char(
string="Bairro", xsd_required=True)
nfe_cMun = fields.Char(
string="Código do município", xsd_required=True,
help=("Código do município (utilizar a tabela do IBGE), informar"
"9999999 para operações com o exterior."))
nfe_xMun = fields.Char(
string="Nome do município", xsd_required=True,
help=("Nome do município, informar EXTERIOR para operações com o"
"exterior."))
nfe_UF = fields.Selection(
TUf,
string="Sigla da UF", xsd_required=True,
help="Sigla da UF, informar EX para operações com o exterior.")
nfe_CEP = fields.Char(
string="CEP")
nfe_cPais = fields.Char(
string="Código de Pais")
nfe_xPais = fields.Char(
string="Nome do país")
nfe_fone = fields.Char(
string="Telefone",
help=("Telefone, preencher com Código DDD + número do telefone , nas"
"operações com exterior é permtido informar o"
"código do país + código da localidade + número"
"do telefone"))
class TEnviNFe(spec_models.AbstractSpecMixin):
"Tipo Pedido de Concessão de Autorização da Nota Fiscal Eletrônica"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tenvinfe'
_generateds_type = 'TEnviNFe'
_concrete_class = None
_concrete_rec_name = 'nfe_versao'
nfe_versao = fields.Char(
string="versao", xsd_required=True)
nfe_idLote = fields.Char(
string="idLote", xsd_required=True)
nfe_indSinc = fields.Selection(
indSincType,
string="Indicador de processamento síncrono",
xsd_required=True,
help="Indicador de processamento síncrono. 0=NÃO; 1=SIM=Síncrono")
nfe_NFe = fields.One2many(
"nfe.v4_00.tnfe",
"nfe_NFe_TEnviNFe_id",
string="NFe", xsd_required=True
)
class TIpi(spec_models.AbstractSpecMixin):
"Tipo: Dados do IPI"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tipi'
_generateds_type = 'TIpi'
_concrete_class = None
_concrete_rec_name = 'nfe_CNPJProd'
nfe_choice3 = fields.Selection([
('nfe_IPITrib', 'IPITrib'),
('nfe_IPINT', 'IPINT')],
"IPITrib/IPINT",
default="nfe_IPITrib")
nfe_CNPJProd = fields.Char(
string="CNPJ do produtor da mercadoria",
help=("CNPJ do produtor da mercadoria, quando diferente do emitente."
"Somente para os casos de exportação direta ou"
"indireta."))
nfe_cSelo = fields.Char(
string="Código do selo de controle do IPI")
nfe_qSelo = fields.Char(
string="Quantidade de selo de controle do IPI")
nfe_cEnq = fields.Char(
string="Código de Enquadramento Legal do IPI",
xsd_required=True,
help=("Código de Enquadramento Legal do IPI (tabela a ser criada pela"
"RFB)"))
nfe_IPITrib = fields.Many2one(
"nfe.v4_00.ipitrib",
choice='3',
string="IPITrib", xsd_required=True)
nfe_IPINT = fields.Many2one(
"nfe.v4_00.ipint",
choice='3',
string="IPINT", xsd_required=True)
class TLocal(spec_models.AbstractSpecMixin):
"""Tipo Dados do Local de Retirada ou Entrega // 24/10/08 - tamanho mínimo
// v2.0"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tlocal'
_generateds_type = 'TLocal'
_concrete_class = None
_concrete_rec_name = 'nfe_CNPJ'
nfe_choice2 = fields.Selection([
('nfe_CNPJ', 'CNPJ'),
('nfe_CPF', 'CPF')],
"CNPJ/CPF",
default="nfe_CNPJ")
nfe_CNPJ = fields.Char(
choice='2',
string="CNPJ", xsd_required=True)
nfe_CPF = fields.Char(
choice='2',
string="CPF (v2.0)", xsd_required=True)
nfe_xLgr = fields.Char(
string="Logradouro", xsd_required=True)
nfe_nro = fields.Char(
string="Número", xsd_required=True)
nfe_xCpl = fields.Char(
string="Complemento")
nfe_xBairro = fields.Char(
string="Bairro", xsd_required=True)
nfe_cMun = fields.Char(
string="Código do município", xsd_required=True,
help="Código do município (utilizar a tabela do IBGE)")
nfe_xMun = fields.Char(
string="Nome do município", xsd_required=True)
nfe_UF = fields.Selection(
TUf,
string="Sigla da UF", xsd_required=True)
class TNFe(spec_models.AbstractSpecMixin):
"Tipo Nota Fiscal Eletrônica"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tnfe'
_generateds_type = 'TNFe'
_concrete_class = None
_concrete_rec_name = 'nfe_infNFe'
nfe_NFe_TEnviNFe_id = fields.Many2one(
"nfe.v4_00.tenvinfe")
nfe_infNFe = fields.Many2one(
"nfe.v4_00.infnfe",
string="Informações da Nota Fiscal eletrônica",
xsd_required=True)
nfe_infNFeSupl = fields.Many2one(
"nfe.v4_00.infnfesupl",
string="Informações suplementares Nota Fiscal")
nfe_Signature = fields.Many2one(
"nfe.v4_00.signature",
string="Signature", xsd_required=True)
class TNfeProc(spec_models.AbstractSpecMixin):
"Tipo da NF-e processada"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tnfeproc'
_generateds_type = 'TNfeProc'
_concrete_class = None
_concrete_rec_name = 'nfe_versao'
nfe_versao = fields.Char(
string="versao", xsd_required=True)
nfe_NFe = fields.Many2one(
"nfe.v4_00.tnfe",
string="NFe", xsd_required=True)
nfe_protNFe = fields.Many2one(
"nfe.v4_00.tprotnfe",
string="protNFe", xsd_required=True)
class TProtNFe(spec_models.AbstractSpecMixin):
"Tipo Protocolo de status resultado do processamento da NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tprotnfe'
_generateds_type = 'TProtNFe'
_concrete_class = None
_concrete_rec_name = 'nfe_versao'
nfe_protNFe_TRetConsReciNFe_id = fields.Many2one(
"nfe.v4_00.tretconsrecinfe")
nfe_versao = fields.Char(
string="versao", xsd_required=True)
nfe_infProt = fields.Many2one(
"nfe.v4_00.infprot",
string="Dados do protocolo de status",
xsd_required=True)
nfe_Signature = fields.Many2one(
"nfe.v4_00.signature",
string="Signature")
class TRetConsReciNFe(spec_models.AbstractSpecMixin):
"""Tipo Retorno do Pedido de Consulta do Recido do Lote de Notas Fiscais
Eletrônicas"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tretconsrecinfe'
_generateds_type = 'TRetConsReciNFe'
_concrete_class = None
_concrete_rec_name = 'nfe_versao'
nfe_versao = fields.Char(
string="versao", xsd_required=True)
nfe_tpAmb = fields.Selection(
TAmb,
string="Identificação do Ambiente",
xsd_required=True,
help=("Identificação do Ambiente:"
"1 - Produção"
"2 - Homologação"))
nfe_verAplic = fields.Char(
string="Versão do Aplicativo que processou a NF",
xsd_required=True,
help="Versão do Aplicativo que processou a NF-e")
nfe_nRec = fields.Char(
string="Número do Recibo Consultado",
xsd_required=True)
nfe_cStat = fields.Char(
string="Código do status da mensagem enviada",
xsd_required=True)
nfe_xMotivo = fields.Char(
string="Descrição literal do status do serviço solicitado",
xsd_required=True)
nfe_cUF = fields.Selection(
TCodUfIBGE,
string="código da UF de atendimento",
xsd_required=True)
nfe_dhRecbto = fields.Char(
string="Data e hora de processamento",
xsd_required=True,
help=("Data e hora de processamento, no formato AAAA-MM-"
"DDTHH:MM:SSTZD. Em caso de Rejeição, com data e"
"hora do recebimento do Lote de NF-e enviado."))
nfe_cMsg = fields.Char(
string="Código da Mensagem (v2.0)",
help=("Código da Mensagem (v2.0)"
"alterado para tamanho variavel 1-4. (NT2011/004)"))
nfe_xMsg = fields.Char(
string="Mensagem da SEFAZ para o emissor",
help="Mensagem da SEFAZ para o emissor. (v2.0)")
nfe_protNFe = fields.One2many(
"nfe.v4_00.tprotnfe",
"nfe_protNFe_TRetConsReciNFe_id",
string="Protocolo de status resultado do processamento da NF",
help="Protocolo de status resultado do processamento da NF-e"
)
class TRetEnviNFe(spec_models.AbstractSpecMixin):
"Tipo Retorno do Pedido de Autorização da Nota Fiscal Eletrônica"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tretenvinfe'
_generateds_type = 'TRetEnviNFe'
_concrete_class = None
_concrete_rec_name = 'nfe_versao'
nfe_choice1 = fields.Selection([
('nfe_infRec', 'infRec'),
('nfe_protNFe', 'protNFe')],
"infRec/protNFe",
default="nfe_infRec")
nfe_versao = fields.Char(
string="versao", xsd_required=True)
nfe_tpAmb = fields.Selection(
TAmb,
string="Identificação do Ambiente",
xsd_required=True,
help=("Identificação do Ambiente:"
"1 - Produção"
"2 - Homologação"))
nfe_verAplic = fields.Char(
string="Versão do Aplicativo que recebeu o Lote",
xsd_required=True)
nfe_cStat = fields.Char(
string="Código do status da mensagem enviada",
xsd_required=True)
nfe_xMotivo = fields.Char(
string="Descrição literal do status do serviço solicitado",
xsd_required=True)
nfe_cUF = fields.Selection(
TCodUfIBGE,
string="código da UF de atendimento",
xsd_required=True)
nfe_dhRecbto = fields.Char(
string="Data e hora do recebimento",
xsd_required=True,
help="Data e hora do recebimento, no formato AAAA-MM-DDTHH:MM:SSTZD")
nfe_infRec = fields.Many2one(
"nfe.v4_00.infrec",
choice='1',
string="Dados do Recibo do Lote")
nfe_protNFe = fields.Many2one(
"nfe.v4_00.tprotnfe",
choice='1',
string="Protocolo de status resultado do processamento sincrono da NFC",
help=("Protocolo de status resultado do processamento sincrono da"
"NFC-e"))
class TVeiculo(spec_models.AbstractSpecMixin):
"Tipo Dados do Veículo"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.tveiculo'
_generateds_type = 'TVeiculo'
_concrete_class = None
_concrete_rec_name = 'nfe_placa'
nfe_reboque_transp_id = fields.Many2one(
"nfe.v4_00.transp")
nfe_placa = fields.Char(
string="Placa do veículo (NT2011/004)",
xsd_required=True)
nfe_UF = fields.Selection(
TUf,
string="Sigla da UF", xsd_required=True)
nfe_RNTC = fields.Char(
string="Registro Nacional de Transportador de Carga",
help="Registro Nacional de Transportador de Carga (ANTT)")
class Transform(spec_models.AbstractSpecMixin):
_description = 'transform'
_name = 'nfe.v4_00.transform'
_generateds_type = 'TransformType'
_concrete_class = None
_concrete_rec_name = 'nfe_Algorithm'
nfe_Transform_Transforms_id = fields.Many2one(
"nfe.v4_00.transforms")
nfe_Algorithm = fields.Char(
string="Algorithm", xsd_required=True)
nfe_XPath = fields.Char(
string="XPath")
class Transforms(spec_models.AbstractSpecMixin):
_description = 'transforms'
_name = 'nfe.v4_00.transforms'
_generateds_type = 'TransformsType'
_concrete_class = None
_concrete_rec_name = 'nfe_Transform'
nfe_Transform = fields.One2many(
"nfe.v4_00.transform",
"nfe_Transform_Transforms_id",
string="Transform", xsd_required=True
)
class X509Data(spec_models.AbstractSpecMixin):
_description = 'x509data'
_name = 'nfe.v4_00.x509data'
_generateds_type = 'X509DataType'
_concrete_class = None
_concrete_rec_name = 'nfe_X509Certificate'
nfe_X509Certificate = fields.Char(
string="X509Certificate",
xsd_required=True)
class adi(spec_models.AbstractSpecMixin):
"Adições (NT 2011/004)"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.adi'
_generateds_type = 'adiType'
_concrete_class = None
_concrete_rec_name = 'nfe_nAdicao'
nfe_adi_DI_id = fields.Many2one(
"nfe.v4_00.di")
nfe_nAdicao = fields.Char(
string="Número da Adição", xsd_required=True)
nfe_nSeqAdic = fields.Char(
string="Número seqüencial do item dentro da Adição",
xsd_required=True)
nfe_cFabricante = fields.Char(
string="Código do fabricante estrangeiro",
xsd_required=True,
help=("Código do fabricante estrangeiro (usado nos sistemas internos"
"de informação do emitente da NF-e)"))
nfe_vDescDI = fields.Monetary(
digits=2, string="Valor do desconto do item da DI – adição")
nfe_nDraw = fields.Char(
string="Número do ato concessório de Drawback")
class arma(spec_models.AbstractSpecMixin):
"Armamentos"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.arma'
_generateds_type = 'armaType'
_concrete_class = None
_concrete_rec_name = 'nfe_tpArma'
nfe_arma_prod_id = fields.Many2one(
"nfe.v4_00.prod")
nfe_tpArma = fields.Selection(
tpArmaType,
string="Indicador do tipo de arma de fogo",
xsd_required=True,
help=("Indicador do tipo de arma de fogo (0 - Uso permitido; 1 - Uso"
"restrito)"))
nfe_nSerie = fields.Char(
string="Número de série da arma",
xsd_required=True)
nfe_nCano = fields.Char(
string="Número de série do cano",
xsd_required=True)
nfe_descr = fields.Char(
string="Descrição completa da arma",
xsd_required=True,
help=("Descrição completa da arma, compreendendo: calibre, marca,"
"capacidade, tipo de funcionamento, comprimento e"
"demais elementos que permitam a sua perfeita"
"identificação."))
class autXML(spec_models.AbstractSpecMixin):
"Pessoas autorizadas para o download do XML da NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.autxml'
_generateds_type = 'autXMLType'
_concrete_class = None
_concrete_rec_name = 'nfe_CNPJ'
nfe_autXML_infNFe_id = fields.Many2one(
"nfe.v4_00.infnfe")
nfe_choice8 = fields.Selection([
('nfe_CNPJ', 'CNPJ'),
('nfe_CPF', 'CPF')],
"CNPJ/CPF",
default="nfe_CNPJ")
nfe_CNPJ = fields.Char(
choice='8',
string="CNPJ Autorizado", xsd_required=True)
nfe_CPF = fields.Char(
choice='8',
string="CPF Autorizado", xsd_required=True)
class avulsa(spec_models.AbstractSpecMixin):
"Emissão de avulsa, informar os dados do Fisco emitente"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.avulsa'
_generateds_type = 'avulsaType'
_concrete_class = None
_concrete_rec_name = 'nfe_CNPJ'
nfe_CNPJ = fields.Char(
string="CNPJ do Órgão emissor", xsd_required=True)
nfe_xOrgao = fields.Char(
string="Órgão emitente", xsd_required=True)
nfe_matr = fields.Char(
string="Matrícula do agente", xsd_required=True)
nfe_xAgente = fields.Char(
string="Nome do agente", xsd_required=True)
nfe_fone = fields.Char(
string="Telefone")
nfe_UF = fields.Selection(
TUfEmi,
string="Sigla da Unidade da Federação",
xsd_required=True)
nfe_nDAR = fields.Char(
string="Número do Documento de Arrecadação de Receita")
nfe_dEmi = fields.Char(
string="Data de emissão do DAR (AAAA-MM-DD)")
nfe_vDAR = fields.Monetary(
digits=2, string="Valor Total constante no DAR")
nfe_repEmi = fields.Char(
string="Repartição Fiscal emitente",
xsd_required=True)
nfe_dPag = fields.Char(
string="Data de pagamento do DAR",
help="Data de pagamento do DAR (AAAA-MM-DD)")
class cana(spec_models.AbstractSpecMixin):
"Informações de registro aquisições de cana"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.cana'
_generateds_type = 'canaType'
_concrete_class = None
_concrete_rec_name = 'nfe_safra'
nfe_safra = fields.Char(
string="Identificação da safra",
xsd_required=True)
nfe_ref = fields.Char(
string="Mês e Ano de Referência", xsd_required=True,
help="Mês e Ano de Referência, formato: MM/AAAA")
nfe_forDia = fields.One2many(
"nfe.v4_00.fordia",
"nfe_forDia_cana_id",
string="Fornecimentos diários",
xsd_required=True
)
nfe_qTotMes = fields.Monetary(
digits=0, string="Total do mês", xsd_required=True)
nfe_qTotAnt = fields.Monetary(
digits=0, string="Total Anterior", xsd_required=True)
nfe_qTotGer = fields.Monetary(
digits=0, string="Total Geral", xsd_required=True)
nfe_deduc = fields.One2many(
"nfe.v4_00.deduc",
"nfe_deduc_cana_id",
string="Deduções - Taxas e Contribuições"
)
nfe_vFor = fields.Monetary(
digits=2, string="Valor dos fornecimentos",
xsd_required=True,
help="Valor dos fornecimentos")
nfe_vTotDed = fields.Monetary(
digits=2, string="Valor Total das Deduções",
xsd_required=True)
nfe_vLiqFor = fields.Monetary(
digits=2, string="Valor Líquido dos fornecimentos",
xsd_required=True)
class card(spec_models.AbstractSpecMixin):
"Grupo de Cartões"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.card'
_generateds_type = 'cardType'
_concrete_class = None
_concrete_rec_name = 'nfe_tpIntegra'
nfe_tpIntegra = fields.Selection(
tpIntegraType,
string="tpIntegra", xsd_required=True,
help=("Tipo de Integração do processo de pagamento com o sistema de"
"automação da empresa/"))
nfe_CNPJ = fields.Char(
string="CNPJ da credenciadora de cartão de crédito/débito")
nfe_tBand = fields.Selection(
tBandType,
string="tBand",
help=("Bandeira da operadora de cartão de crédito/débito:01–Visa;"
"02–Mastercard; 03–American Express;"
"04–Sorocred;05-Diners Club;06-Elo;07-Hipercard;0"
"8-Aura;09-Cabal;99–Outros"))
nfe_cAut = fields.Char(
string="Número de autorização da operação cartão de crédito/débito")
class cobr(spec_models.AbstractSpecMixin):
"Dados da cobrança da NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.cobr'
_generateds_type = 'cobrType'
_concrete_class = None
_concrete_rec_name = 'nfe_fat'
nfe_fat = fields.Many2one(
"nfe.v4_00.fat",
string="Dados da fatura")
nfe_dup = fields.One2many(
"nfe.v4_00.dup",
"nfe_dup_cobr_id",
string="Dados das duplicatas NT 2011/004"
)
class comb(spec_models.AbstractSpecMixin):
"Informar apenas para operações com combustíveis líquidos"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.comb'
_generateds_type = 'combType'
_concrete_class = None
_concrete_rec_name = 'nfe_cProdANP'
nfe_cProdANP = fields.Char(
string="Código de produto da ANP",
xsd_required=True,
help=("Código de produto da ANP. codificação de produtos do SIMP"
"(http://www.anp.gov.br)"))
nfe_descANP = fields.Char(
string="Descrição do Produto conforme ANP",
xsd_required=True,
help=("Descrição do Produto conforme ANP. Utilizar a descrição de"
"produtos do Sistema de Informações de"
"Movimentação de Produtos - SIMP"
"(http://www.anp.gov.br/simp/)."))
nfe_pGLP = fields.Monetary(
digits=2,
string="Percentual do GLP derivado do petróleo no produto GLP",
help=("Percentual do GLP derivado do petróleo no produto GLP"
"(cProdANP=210203001). Informar em número decimal"
"o percentual do GLP derivado de petróleo no"
"produto GLP. Valores 0 a 100."))
nfe_pGNn = fields.Monetary(
digits=2, string="Percentual de gás natural nacional",
help=("Percentual de gás natural nacional - GLGNn para o produto GLP"
"(cProdANP=210203001). Informar em número decimal"
"o percentual do Gás Natural Nacional - GLGNn"
"para o produto GLP. Valores de 0 a 100."))
nfe_pGNi = fields.Monetary(
digits=2,
string="Percentual de gás natural importado GLGNi para o produto GLP",
help=("Percentual de gás natural importado GLGNi para o produto GLP"
"(cProdANP=210203001). Informar em número deciaml"
"o percentual do Gás Natural Importado - GLGNi"
"para o produto GLP. Valores de 0 a 100."))
nfe_vPart = fields.Monetary(
digits=2, string="Valor de partida",
help=("Valor de partida (cProdANP=210203001). Deve ser informado"
"neste campo o valor por quilograma sem ICMS."))
nfe_CODIF = fields.Char(
string="Código de autorização / registro do CODIF",
help=("Código de autorização / registro do CODIF. Informar apenas"
"quando a UF utilizar o CODIF (Sistema de"
"Controle do Diferimento do Imposto nas Operações"
"com AEAC - Álcool Etílico Anidro Combustível)."))
nfe_qTemp = fields.Monetary(
digits=4, string="Quantidade de combustível",
help=("Quantidade de combustível"
"faturada à temperatura ambiente."
"Informar quando a quantidade"
"faturada informada no campo"
"qCom (I10) tiver sido ajustada para"
"uma temperatura diferente da"
"ambiente."))
nfe_UFCons = fields.Selection(
TUf,
string="Sigla da UF de Consumo",
xsd_required=True)
nfe_CIDE = fields.Many2one(
"nfe.v4_00.cide",
string="CIDE Combustíveis")
nfe_encerrante = fields.Many2one(
"nfe.v4_00.encerrante",
string="Informações do grupo de 'encerrante'",
help="Informações do grupo de 'encerrante'")
class compra(spec_models.AbstractSpecMixin):
"Informações de compras (Nota de Empenho, Pedido e Contrato)"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.compra'
_generateds_type = 'compraType'
_concrete_class = None
_concrete_rec_name = 'nfe_xNEmp'
nfe_xNEmp = fields.Char(
string="Informação da Nota de Empenho de compras públicas",
help="Informação da Nota de Empenho de compras públicas (NT2011/004)")
nfe_xPed = fields.Char(
string="Informação do pedido")
nfe_xCont = fields.Char(
string="Informação do contrato")
class deduc(spec_models.AbstractSpecMixin):
"Deduções - Taxas e Contribuições"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.deduc'
_generateds_type = 'deducType'
_concrete_class = None
_concrete_rec_name = 'nfe_xDed'
nfe_deduc_cana_id = fields.Many2one(
"nfe.v4_00.cana")
nfe_xDed = fields.Char(
string="Descrição da Dedução", xsd_required=True)
nfe_vDed = fields.Monetary(
digits=2, string="valor da dedução", xsd_required=True)
class dest(spec_models.AbstractSpecMixin):
"Identificação do Destinatário"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.dest'
_generateds_type = 'destType'
_concrete_class = None
_concrete_rec_name = 'nfe_CNPJ'
nfe_choice7 = fields.Selection([
('nfe_CNPJ', 'CNPJ'),
('nfe_CPF', 'CPF'),
('nfe_idEstrangeiro', 'idEstrangeiro')],
"CNPJ/CPF/idEstrangeiro",
default="nfe_CNPJ")
nfe_CNPJ = fields.Char(
choice='7',
string="Número do CNPJ", xsd_required=True)
nfe_CPF = fields.Char(
choice='7',
string="Número do CPF", xsd_required=True)
nfe_idEstrangeiro = fields.Char(
choice='7',
string="Identificador do destinatário",
xsd_required=True,
help=("Identificador do destinatário, em caso de comprador"
"estrangeiro"))
nfe_xNome = fields.Char(
string="Razão Social ou nome do destinatário")
nfe_enderDest = fields.Many2one(
"nfe.v4_00.tendereco",
string="Dados do endereço")
nfe_indIEDest = fields.Selection(
indIEDestType,
string="Indicador da IE do destinatário",
xsd_required=True,
help=("Indicador da IE do destinatário:"
"1 – Contribuinte ICMSpagamento à vista;"
"2 – Contribuinte isento de inscrição;"
"9 – Não Contribuinte"))
nfe_IE = fields.Char(
string="Inscrição Estadual",
help=("Inscrição Estadual (obrigatório nas operações com"
"contribuintes do ICMS)"))
nfe_ISUF = fields.Char(
string="Inscrição na SUFRAMA",
help=("Inscrição na SUFRAMA (Obrigatório nas operações com as áreas"
"com benefícios de incentivos fiscais sob"
"controle da SUFRAMA) PL_005d - 11/08/09 -"
"alterado para aceitar 8 ou 9 dígitos"))
nfe_IM = fields.Char(
string="Inscrição Municipal do tomador do serviço")
nfe_email = fields.Char(
string="Informar o e-mail do destinatário",
help=("Informar o e-mail do destinatário. O campo pode ser utilizado"
"para informar o e-mail"
"de recepção da NF-e indicada pelo destinatário"))
class detExport(spec_models.AbstractSpecMixin):
"Detalhe da exportação"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.detexport'
_generateds_type = 'detExportType'
_concrete_class = None
_concrete_rec_name = 'nfe_nDraw'
nfe_detExport_prod_id = fields.Many2one(
"nfe.v4_00.prod")
nfe_nDraw = fields.Char(
string="Número do ato concessório de Drawback")
nfe_exportInd = fields.Many2one(
"nfe.v4_00.exportind",
string="Exportação indireta")
class detPag(spec_models.AbstractSpecMixin):
"Grupo de detalhamento da forma de pagamento."
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.detpag'
_generateds_type = 'detPagType'
_concrete_class = None
_concrete_rec_name = 'nfe_indPag'
nfe_detPag_pag_id = fields.Many2one(
"nfe.v4_00.pag")
nfe_indPag = fields.Selection(
indPagType,
string="Indicador da Forma de Pagamento:0",
help=("Indicador da Forma de Pagamento"
"0-Pagamento à Vista"
"1-Pagamento à Prazo"))
nfe_tPag = fields.Selection(
tPagType,
string="Forma de Pagamento:01", xsd_required=True,
help=("Forma de Pagamento:01-Dinheiro;02-Cheque;03-Cartão de"
"Crédito;04-Cartão de Débito;05-Crédito"
"Loja;10-Vale Alimentação;11-Vale"
"Refeição;12-Vale Presente;13-Vale Combustível;14"
"- Duplicata Mercantil;15 - Boleto Bancario;90 -"
"Sem Pagamento;99 - Outros"))
nfe_vPag = fields.Monetary(
digits=2, string="Valor do Pagamento", xsd_required=True,
help=("Valor do Pagamento. Esta tag poderá ser omitida quando a tag"
"tPag=90 (Sem Pagamento), caso contrário deverá"
"ser preenchida."))
nfe_card = fields.Many2one(
"nfe.v4_00.card",
string="Grupo de Cartões")
class det(spec_models.AbstractSpecMixin):
"Dados dos detalhes da NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.det'
_generateds_type = 'detType'
_concrete_class = None
_concrete_rec_name = 'nfe_nItem'
nfe_det_infNFe_id = fields.Many2one(
"nfe.v4_00.infnfe")
nfe_nItem = fields.Char(
string="nItem", xsd_required=True)
nfe_prod = fields.Many2one(
"nfe.v4_00.prod",
string="Dados dos produtos e serviços da NF",
xsd_required=True,
help="Dados dos produtos e serviços da NF-e")
nfe_imposto = fields.Many2one(
"nfe.v4_00.imposto",
string="Tributos incidentes nos produtos ou serviços da NF",
xsd_required=True,
help="Tributos incidentes nos produtos ou serviços da NF-e")
nfe_impostoDevol = fields.Many2one(
"nfe.v4_00.impostodevol",
string="impostoDevol")
nfe_infAdProd = fields.Char(
string="Informações adicionais do produto",
help=("Informações adicionais do produto (norma referenciada,"
"informações complementares, etc)"))
class dup(spec_models.AbstractSpecMixin):
"Dados das duplicatas NT 2011/004"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.dup'
_generateds_type = 'dupType'
_concrete_class = None
_concrete_rec_name = 'nfe_nDup'
nfe_dup_cobr_id = fields.Many2one(
"nfe.v4_00.cobr")
nfe_nDup = fields.Char(
string="Número da duplicata")
nfe_dVenc = fields.Char(
string="Data de vencimento da duplicata",
help="Data de vencimento da duplicata (AAAA-MM-DD)")
nfe_vDup = fields.Monetary(
digits=2, string="Valor da duplicata", xsd_required=True)
class emit(spec_models.AbstractSpecMixin):
"Identificação do emitente"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.emit'
_generateds_type = 'emitType'
_concrete_class = None
_concrete_rec_name = 'nfe_CNPJ'
nfe_choice6 = fields.Selection([
('nfe_CNPJ', 'CNPJ'),
('nfe_CPF', 'CPF')],
"CNPJ/CPF",
default="nfe_CNPJ")
nfe_CNPJ = fields.Char(
choice='6',
string="Número do CNPJ do emitente",
xsd_required=True)
nfe_CPF = fields.Char(
choice='6',
string="Número do CPF do emitente",
xsd_required=True)
nfe_xNome = fields.Char(
string="Razão Social ou Nome do emitente",
xsd_required=True)
nfe_xFant = fields.Char(
string="Nome fantasia")
nfe_enderEmit = fields.Many2one(
"nfe.v4_00.tenderemi",
string="Endereço do emitente",
xsd_required=True)
nfe_IE = fields.Char(
string="Inscrição Estadual do Emitente",
xsd_required=True)
nfe_IEST = fields.Char(
string="Inscricao Estadual do Substituto Tributário")
nfe_IM = fields.Char(
string="Inscrição Municipal")
nfe_CNAE = fields.Char(
string="CNAE Fiscal")
nfe_CRT = fields.Selection(
CRTType,
string="Código de Regime Tributário.",
xsd_required=True,
help=("Código de Regime Tributário."
"Este campo será obrigatoriamente preenchido com:"))
class encerrante(spec_models.AbstractSpecMixin):
"""Informações do grupo de "encerrante" """
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.encerrante'
_generateds_type = 'encerranteType'
_concrete_class = None
_concrete_rec_name = 'nfe_nBico'
nfe_nBico = fields.Char(
string="Numero de identificação do Bico utilizado no abastecimento",
xsd_required=True)
nfe_nBomba = fields.Char(
string="nBomba",
help=("Numero de identificação da bomba ao qual o bico está"
"interligado"))
nfe_nTanque = fields.Char(
string="nTanque", xsd_required=True,
help=("Numero de identificação do tanque ao qual o bico está"
"interligado"))
nfe_vEncIni = fields.Monetary(
digits=3, string="Valor do Encerrante no ínicio do abastecimento",
xsd_required=True)
nfe_vEncFin = fields.Monetary(
digits=3, string="Valor do Encerrante no final do abastecimento",
xsd_required=True)
class exportInd(spec_models.AbstractSpecMixin):
"Exportação indireta"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.exportind'
_generateds_type = 'exportIndType'
_concrete_class = None
_concrete_rec_name = 'nfe_nRE'
nfe_nRE = fields.Char(
string="Registro de exportação", xsd_required=True)
nfe_chNFe = fields.Char(
string="Chave de acesso da NF", xsd_required=True,
help="Chave de acesso da NF-e recebida para exportação")
nfe_qExport = fields.Monetary(
digits=4, string="Quantidade do item efetivamente exportado",
xsd_required=True)
class exporta(spec_models.AbstractSpecMixin):
"Informações de exportação"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.exporta'
_generateds_type = 'exportaType'
_concrete_class = None
_concrete_rec_name = 'nfe_UFSaidaPais'
nfe_UFSaidaPais = fields.Selection(
TUfEmi,
string="Sigla da UF de Embarque ou de transposição de fronteira",
xsd_required=True)
nfe_xLocExporta = fields.Char(
string="Local de Embarque ou de transposição de fronteira",
xsd_required=True)
nfe_xLocDespacho = fields.Char(
string="Descrição do local de despacho")
class fat(spec_models.AbstractSpecMixin):
"Dados da fatura"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.fat'
_generateds_type = 'fatType'
_concrete_class = None
_concrete_rec_name = 'nfe_nFat'
nfe_nFat = fields.Char(
string="Número da fatura")
nfe_vOrig = fields.Monetary(
digits=2, string="Valor original da fatura")
nfe_vDesc = fields.Monetary(
digits=2, string="Valor do desconto da fatura")
nfe_vLiq = fields.Monetary(
digits=2, string="Valor líquido da fatura")
class forDia(spec_models.AbstractSpecMixin):
"Fornecimentos diários"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.fordia'
_generateds_type = 'forDiaType'
_concrete_class = None
_concrete_rec_name = 'nfe_dia'
nfe_forDia_cana_id = fields.Many2one(
"nfe.v4_00.cana")
nfe_dia = fields.Char(
string="dia", xsd_required=True)
nfe_qtde = fields.Monetary(
digits=0, string="Quantidade em quilogramas",
xsd_required=True,
help="Quantidade em quilogramas - peso líquido")
class ide(spec_models.AbstractSpecMixin):
"identificação da NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.ide'
_generateds_type = 'ideType'
_concrete_class = None
_concrete_rec_name = 'nfe_cUF'
nfe_cUF = fields.Selection(
TCodUfIBGE,
string="Código da UF do emitente do Documento Fiscal",
xsd_required=True,
help=("Código da UF do emitente do Documento Fiscal. Utilizar a"
"Tabela do IBGE."))
nfe_cNF = fields.Char(
string="Código numérico que compõe a Chave de Acesso",
xsd_required=True,
help=("Código numérico que compõe a Chave de Acesso. Número aleatório"
"gerado pelo emitente para cada NF-e."))
nfe_natOp = fields.Char(
string="Descrição da Natureza da Operação",
xsd_required=True)
nfe_mod = fields.Selection(
TMod,
string="Código do modelo do Documento Fiscal",
xsd_required=True,
help="Código do modelo do Documento Fiscal. 55 = NF-e; 65 = NFC-e.")
nfe_serie = fields.Char(
string="Série do Documento Fiscal",
xsd_required=True,
help=("Série do Documento Fiscal"
"série normal 0-889"
"Avulsa Fisco 890-899"
"SCAN 900-999"))
nfe_nNF = fields.Char(
string="Número do Documento Fiscal",
xsd_required=True)
nfe_dhEmi = fields.Char(
string="Data e Hora de emissão do Documento Fiscal",
xsd_required=True,
help=("Data e Hora de emissão do Documento Fiscal (AAAA-MM-"
"DDThh:mm:ssTZD) ex.: 2012-09-01T13:00:00-03:00"))
nfe_dhSaiEnt = fields.Char(
string="Data e Hora da saída ou de entrada da mercadoria / produto",
help=("Data e Hora da saída ou de entrada da mercadoria / produto"
"(AAAA-MM-DDTHH:mm:ssTZD)"))
nfe_tpNF = fields.Selection(
tpNFType,
string="Tipo do Documento Fiscal",
xsd_required=True,
help="Tipo do Documento Fiscal (0 - entrada; 1 - saída)")
nfe_idDest = fields.Selection(
idDestType,
string="Identificador de Local de destino da operação",
xsd_required=True,
help=("Identificador de Local de destino da operação"
"(1-Interna;2-Interestadual;3-Exterior)"))
nfe_cMunFG = fields.Char(
string="Código do Município de Ocorrência do Fato Gerador",
xsd_required=True,
help=("Código do Município de Ocorrência do Fato Gerador (utilizar a"
"tabela do IBGE)"))
nfe_tpImp = fields.Selection(
tpImpType,
string="Formato de impressão do DANFE",
xsd_required=True,
help=("Formato de impressão do DANFE (0-sem DANFE;1-DANFe Retrato;"
"2-DANFe Paisagem;3-DANFe Simplificado;"
"4-DANFe NFC-e;5-DANFe NFC-e em mensagem eletrônica)"))
nfe_tpEmis = fields.Selection(
tpEmisType,
string="Forma de emissão da NF-e",
xsd_required=True,
help=("Forma de emissão da NF-e"
"1 - Normal;"
"2 - Contingência FS"
"3 - Contingência SCAN"
"4 - Contingência DPEC"
"5 - Contingência FSDA"
"6 - Contingência SVC - AN"
"7 - Contingência SVC - RS"
"9 - Contingência off-line NFC-e"))
nfe_cDV = fields.Char(
string="Digito Verificador da Chave de Acesso da NF",
xsd_required=True,
help="Digito Verificador da Chave de Acesso da NF-e")
nfe_tpAmb = fields.Selection(
TAmb,
string="Identificação do Ambiente",
xsd_required=True,
help=("Identificação do Ambiente:"
"1 - Produção"
"2 - Homologação"))
nfe_finNFe = fields.Selection(
TFinNFe,
string="Finalidade da emissão da NF-e",
xsd_required=True,
help=("Tipo Finalidade da NF-e (1=Normal; 2=Complementar; 3=Ajuste;"
"4=Devolução/Retorno)"))
nfe_indFinal = fields.Selection(
indFinalType,
string="Indica operação com consumidor final",
xsd_required=True,
help=("Indica operação com consumidor final (0-Não;1-Consumidor"
"Final)"))
nfe_indPres = fields.Selection(
indPresType,
string="indPres", xsd_required=True,
help=("Indicador de presença do comprador no estabelecimento"
"comercial no momento da oepração"
"(0-Não se aplica (ex."
"Nota Fiscal complementar ou de ajuste"
"1-Operação presencial"
"2-Não presencial, internet"
"3-Não presencial, teleatendimento"
"4-NFC-e entrega em domicílio"
"5-Operação presencial, fora do estabelecimento"
"9-Não presencial, outros)"))
nfe_procEmi = fields.Selection(
TProcEmi,
string="Processo de emissão utilizado com a seguinte codificação",
xsd_required=True,
help=("Processo de emissão utilizado com a seguinte codificação:"
"0 - emissão de NF-e com aplicativo do contribuinte;"
"1 - emissão de NF-e avulsa pelo Fisco;"
"2 - emissão de NF-e avulsa, pelo contribuinte com seu"
"certificado digital, através do site"
"do Fisco;"
"3- emissão de NF-e pelo contribuinte com aplicativo fornecido"
"pelo Fisco."))
nfe_verProc = fields.Char(
string="versão do aplicativo utilizado no processo de",
xsd_required=True,
help=("versão do aplicativo utilizado no processo de"
"emissão"))
nfe_dhCont = fields.Char(
string="dhCont",
help=("Informar a data e hora de entrada em contingência contingência"
"no formato (AAAA-MM-DDThh:mm:ssTZD) ex.:"
"2012-09-01T13:00:00-03:00."))
nfe_xJust = fields.Char(
string="Informar a Justificativa da entrada")
nfe_NFref = fields.One2many(
"nfe.v4_00.nfref",
"nfe_NFref_ide_id",
string="Grupo de infromações da NF referenciada"
)
class impostoDevol(spec_models.AbstractSpecMixin):
_description = 'impostodevol'
_name = 'nfe.v4_00.impostodevol'
_generateds_type = 'impostoDevolType'
_concrete_class = None
_concrete_rec_name = 'nfe_pDevol'
nfe_pDevol = fields.Monetary(
digits=2, string="Percentual de mercadoria devolvida",
xsd_required=True)
nfe_IPI = fields.Many2one(
"nfe.v4_00.ipi",
string="Informação de IPI devolvido",
xsd_required=True)
class imposto(spec_models.AbstractSpecMixin):
"Tributos incidentes nos produtos ou serviços da NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.imposto'
_generateds_type = 'impostoType'
_concrete_class = None
_concrete_rec_name = 'nfe_vTotTrib'
nfe_choice10 = fields.Selection([
('nfe_ICMS', 'ICMS'),
('nfe_II', 'II'),
('nfe_IPI', 'IPI'),
('nfe_ISSQN', 'ISSQN')],
"ICMS/II/IPI/ISSQN",
default="nfe_ICMS")
nfe_vTotTrib = fields.Monetary(
digits=2, string="Valor estimado total de impostos federais",
help=("Valor estimado total de impostos federais, estaduais e"
"municipais"))
nfe_ICMS = fields.Many2one(
"nfe.v4_00.icms",
choice='10',
string="Dados do ICMS Normal e ST",
xsd_required=True)
nfe_II = fields.Many2one(
"nfe.v4_00.ii",
choice='10',
string="Dados do Imposto de Importação")
nfe_IPI = fields.Many2one(
"nfe.v4_00.tipi",
choice='10',
string="IPI")
nfe_ISSQN = fields.Many2one(
"nfe.v4_00.issqn",
choice='10',
string="ISSQN", xsd_required=True)
nfe_PIS = fields.Many2one(
"nfe.v4_00.pis",
string="Dados do PIS")
nfe_PISST = fields.Many2one(
"nfe.v4_00.pisst",
string="Dados do PIS Substituição Tributária")
nfe_COFINS = fields.Many2one(
"nfe.v4_00.cofins",
string="Dados do COFINS")
nfe_COFINSST = fields.Many2one(
"nfe.v4_00.cofinsst",
string="Dados do COFINS da",
help=("Dados do COFINS da"
"Substituição Tributaria;"))
nfe_ICMSUFDest = fields.Many2one(
"nfe.v4_00.icmsufdest",
string="ICMSUFDest",
help=("Grupo a ser informado nas vendas interestarduais para"
"consumidor final, não contribuinte de ICMS"))
class infAdic(spec_models.AbstractSpecMixin):
"Informações adicionais da NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.infadic'
_generateds_type = 'infAdicType'
_concrete_class = None
_concrete_rec_name = 'nfe_infAdFisco'
nfe_infAdFisco = fields.Char(
string="Informações adicionais de interesse do Fisco",
help="Informações adicionais de interesse do Fisco (v2.0)")
nfe_infCpl = fields.Char(
string="Informações complementares de interesse do Contribuinte")
nfe_obsCont = fields.One2many(
"nfe.v4_00.obscont",
"nfe_obsCont_infAdic_id",
string="Campo de uso livre do contribuinte",
help=("Campo de uso livre do contribuinte"
"informar o nome do campo no atributo xCampo"
"e o conteúdo do campo no xTexto")
)
nfe_obsFisco = fields.One2many(
"nfe.v4_00.obsfisco",
"nfe_obsFisco_infAdic_id",
string="Campo de uso exclusivo do Fisco",
help=("Campo de uso exclusivo do Fisco"
"informar o nome do campo no atributo xCampo"
"e o conteúdo do campo no xTexto")
)
nfe_procRef = fields.One2many(
"nfe.v4_00.procref",
"nfe_procRef_infAdic_id",
string="Grupo de informações do processo referenciado",
help="Grupo de informações do processo referenciado"
)
class infNFeSupl(spec_models.AbstractSpecMixin):
"Informações suplementares Nota Fiscal"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.infnfesupl'
_generateds_type = 'infNFeSuplType'
_concrete_class = None
_concrete_rec_name = 'nfe_qrCode'
nfe_qrCode = fields.Char(
string="Texto com o QR", xsd_required=True,
help="Texto com o QR-Code impresso no DANFE NFC-e")
nfe_urlChave = fields.Char(
string="Informar a URL da 'Consulta por chave de acesso da NFC",
xsd_required=True,
help=("Informar a URL da 'Consulta por chave de acesso da NFC-e'. A"
"mesma URL que deve estar informada no DANFE"
"NFC-e para consulta por chave de acesso."))
class infNFe(spec_models.AbstractSpecMixin):
"Informações da Nota Fiscal eletrônica"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.infnfe'
_generateds_type = 'infNFeType'
_concrete_class = None
_concrete_rec_name = 'nfe_versao'
nfe_versao = fields.Char(
string="versao", xsd_required=True)
nfe_Id = fields.Char(
string="Id", xsd_required=True)
nfe_ide = fields.Many2one(
"nfe.v4_00.ide",
string="identificação da NF-e", xsd_required=True)
nfe_emit = fields.Many2one(
"nfe.v4_00.emit",
string="Identificação do emitente",
xsd_required=True)
nfe_avulsa = fields.Many2one(
"nfe.v4_00.avulsa",
string="Emissão de avulsa",
help="Emissão de avulsa, informar os dados do Fisco emitente")
nfe_dest = fields.Many2one(
"nfe.v4_00.dest",
string="Identificação do Destinatário")
nfe_retirada = fields.Many2one(
"nfe.v4_00.tlocal",
string="Identificação do Local de Retirada",
help=("Identificação do Local de Retirada (informar apenas quando for"
"diferente do endereço do remetente)"))
nfe_entrega = fields.Many2one(
"nfe.v4_00.tlocal",
string="Identificação do Local de Entrega",
help=("Identificação do Local de Entrega (informar apenas quando for"
"diferente do endereço do destinatário)"))
nfe_autXML = fields.One2many(
"nfe.v4_00.autxml",
"nfe_autXML_infNFe_id",
string="Pessoas autorizadas para o download do XML da NF",
help="Pessoas autorizadas para o download do XML da NF-e"
)
nfe_det = fields.One2many(
"nfe.v4_00.det",
"nfe_det_infNFe_id",
string="Dados dos detalhes da NF-e",
xsd_required=True
)
nfe_total = fields.Many2one(
"nfe.v4_00.total",
string="Dados dos totais da NF-e",
xsd_required=True)
nfe_transp = fields.Many2one(
"nfe.v4_00.transp",
string="Dados dos transportes da NF-e",
xsd_required=True)
nfe_cobr = fields.Many2one(
"nfe.v4_00.cobr",
string="Dados da cobrança da NF-e")
nfe_pag = fields.Many2one(
"nfe.v4_00.pag",
string="Dados de Pagamento", xsd_required=True,
help=("Dados de Pagamento. Obrigatório apenas para (NFC-e) NT"
"2012/004"))
nfe_infAdic = fields.Many2one(
"nfe.v4_00.infadic",
string="Informações adicionais da NF-e")
nfe_exporta = fields.Many2one(
"nfe.v4_00.exporta",
string="Informações de exportação")
nfe_compra = fields.Many2one(
"nfe.v4_00.compra",
string="Informações de compras",
help="Informações de compras (Nota de Empenho, Pedido e Contrato)")
nfe_cana = fields.Many2one(
"nfe.v4_00.cana",
string="Informações de registro aquisições de cana")
class infProt(spec_models.AbstractSpecMixin):
"Dados do protocolo de status"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.infprot'
_generateds_type = 'infProtType'
_concrete_class = None
_concrete_rec_name = 'nfe_Id'
nfe_Id = fields.Char(
string="Id")
nfe_tpAmb = fields.Selection(
TAmb,
string="Identificação do Ambiente",
xsd_required=True,
help=("Identificação do Ambiente:"
"1 - Produção"
"2 - Homologação"))
nfe_verAplic = fields.Char(
string="Versão do Aplicativo que processou a NF",
xsd_required=True,
help="Versão do Aplicativo que processou a NF-e")
nfe_chNFe = fields.Char(
string="Chaves de acesso da NF-e",
xsd_required=True,
help=("Chaves de acesso da NF-e, compostas por: UF do emitente, AAMM"
"da emissão da NFe, CNPJ do emitente, modelo,"
"série e número da NF-e e código numérico+DV."))
nfe_dhRecbto = fields.Char(
string="Data e hora de processamento",
xsd_required=True,
help=("Data e hora de processamento, no formato AAAA-MM-"
"DDTHH:MM:SSTZD. Deve ser preenchida com data e"
"hora da gravação no Banco em caso de"
"Confirmação. Em caso de Rejeição, com data e"
"hora do recebimento do Lote de NF-e enviado."))
nfe_nProt = fields.Char(
string="Número do Protocolo de Status da NF",
help=("Número do Protocolo de Status da NF-e. 1 posição (1 –"
"Secretaria de Fazenda Estadual 2 – Receita"
"Federal); 2 - códiga da UF - 2 posições ano; 10"
"seqüencial no ano."))
nfe_digVal = fields.Char(
string="Digest Value da NF-e processada",
help=("Digest Value da NF-e processada. Utilizado para conferir a"
"integridade da NF-e original."))
nfe_cStat = fields.Char(
string="Código do status da mensagem enviada",
xsd_required=True)
nfe_xMotivo = fields.Char(
string="Descrição literal do status do serviço solicitado",
xsd_required=True)
class infRec(spec_models.AbstractSpecMixin):
"Dados do Recibo do Lote"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.infrec'
_generateds_type = 'infRecType'
_concrete_class = None
_concrete_rec_name = 'nfe_nRec'
nfe_nRec = fields.Char(
string="Número do Recibo", xsd_required=True)
nfe_tMed = fields.Char(
string="Tempo médio de resposta do serviço",
xsd_required=True,
help=("Tempo médio de resposta do serviço (em segundos) dos últimos 5"
"minutos"))
class lacres(spec_models.AbstractSpecMixin):
_description = 'lacres'
_name = 'nfe.v4_00.lacres'
_generateds_type = 'lacresType'
_concrete_class = None
_concrete_rec_name = 'nfe_nLacre'
nfe_lacres_vol_id = fields.Many2one(
"nfe.v4_00.vol")
nfe_nLacre = fields.Char(
string="Número dos Lacres", xsd_required=True)
class med(spec_models.AbstractSpecMixin):
"""grupo do detalhamento de Medicamentos e de matérias-primas
farmacêuticas"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.med'
_generateds_type = 'medType'
_concrete_class = None
_concrete_rec_name = 'nfe_cProdANVISA'
nfe_cProdANVISA = fields.Char(
string="Utilizar o número do registro ANVISA",
xsd_required=True,
help=("Utilizar o número do registro ANVISA"
"Obs.: Para medicamento isento de registro na ANVISA, utilizar"
"o número da decisão que o isenta, como por"
"exemplo o número da Resolução da Diretoria"
"Colegiada da ANVISA (RDC)."))
nfe_vPMC = fields.Monetary(
digits=2, string="Preço Máximo ao Consumidor.",
xsd_required=True)
class obsCont(spec_models.AbstractSpecMixin):
"""Campo de uso livre do contribuinte
informar o nome do campo no atributo xCampo
e o conteúdo do campo no xTexto"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.obscont'
_generateds_type = 'obsContType'
_concrete_class = None
_concrete_rec_name = 'nfe_xCampo'
nfe_obsCont_infAdic_id = fields.Many2one(
"nfe.v4_00.infadic")
nfe_xCampo = fields.Char(
string="xCampo", xsd_required=True)
nfe_xTexto = fields.Char(
string="xTexto", xsd_required=True)
class obsFisco(spec_models.AbstractSpecMixin):
"""Campo de uso exclusivo do Fisco
informar o nome do campo no atributo xCampo
e o conteúdo do campo no xTexto"""
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.obsfisco'
_generateds_type = 'obsFiscoType'
_concrete_class = None
_concrete_rec_name = 'nfe_xCampo'
nfe_obsFisco_infAdic_id = fields.Many2one(
"nfe.v4_00.infadic")
nfe_xCampo = fields.Char(
string="xCampo", xsd_required=True)
nfe_xTexto = fields.Char(
string="xTexto", xsd_required=True)
class pag(spec_models.AbstractSpecMixin):
"Dados de Pagamento. Obrigatório apenas para (NFC-e) NT 2012/004"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.pag'
_generateds_type = 'pagType'
_concrete_class = None
_concrete_rec_name = 'nfe_detPag'
nfe_detPag = fields.One2many(
"nfe.v4_00.detpag",
"nfe_detPag_pag_id",
string="Grupo de detalhamento da forma de pagamento",
xsd_required=True
)
nfe_vTroco = fields.Monetary(
digits=2, string="Valor do Troco.")
class procRef(spec_models.AbstractSpecMixin):
"Grupo de informações do processo referenciado"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.procref'
_generateds_type = 'procRefType'
_concrete_class = None
_concrete_rec_name = 'nfe_nProc'
nfe_procRef_infAdic_id = fields.Many2one(
"nfe.v4_00.infadic")
nfe_nProc = fields.Char(
string="Indentificador do processo ou ato",
xsd_required=True,
help=("Indentificador do processo ou ato"
"concessório"))
nfe_indProc = fields.Selection(
indProcType,
string="Origem do processo, informar com",
xsd_required=True,
help=("Origem do processo, informar com:"
"0 - SEFAZ;"
"1 - Justiça Federal;"
"2 - Justiça Estadual;"
"3 - Secex/RFB;"
"9 - Outros"))
class prod(spec_models.AbstractSpecMixin):
"Dados dos produtos e serviços da NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.prod'
_generateds_type = 'prodType'
_concrete_class = None
_concrete_rec_name = 'nfe_cProd'
nfe_choice9 = fields.Selection([
('nfe_veicProd', 'veicProd'),
('nfe_med', 'med'),
('nfe_arma', 'arma'),
('nfe_comb', 'comb'),
('nfe_nRECOPI', 'nRECOPI')],
"veicProd/med/arma/comb/nRECOPI",
default="nfe_veicProd")
nfe_cProd = fields.Char(
string="Código do produto ou serviço",
xsd_required=True,
help=("Código do produto ou serviço. Preencher com CFOP caso se trate"
"de itens não relacionados com"
"mercadorias/produto e que o contribuinte não"
"possua codificação própria"
"Formato ”CFOP9999”."))
nfe_cEAN = fields.Char(
string="GTIN", xsd_required=True,
help=("GTIN (Global Trade Item Number) do produto, antigo código EAN"
"ou código de barras"))
nfe_xProd = fields.Char(
string="Descrição do produto ou serviço",
xsd_required=True)
nfe_NCM = fields.Char(
string="Código NCM (8 posições)", xsd_required=True,
help=("Código NCM (8 posições), será permitida a informação do gênero"
"(posição do capítulo do NCM) quando a operação"
"não for de comércio exterior"
"(importação/exportação) ou o produto não seja"
"tributado pelo IPI. Em caso de item de serviço"
"ou item que não tenham produto (Ex."
"transferência de crédito, crédito do ativo"
"imobilizado, etc.), informar o código 00 (zeros)"
"(v2.0)"))
nfe_NVE = fields.Char(
string="Nomenclatura de Valor aduaneio e Estatístico")
nfe_CEST = fields.Char(
string="Codigo especificador da Substuicao Tributaria",
xsd_required=True,
help=("Codigo especificador da Substuicao Tributaria - CEST, que"
"identifica a mercadoria sujeita aos regimes de"
"substituicao tributária e de antecipação do"
"recolhimento do imposto"))
nfe_indEscala = fields.Selection(
indEscalaType,
string="indEscala")
nfe_CNPJFab = fields.Char(
string="CNPJ do Fabricante da Mercadoria",
help=("CNPJ do Fabricante da Mercadoria, obrigatório para produto em"
"escala NÃO relevante."))
nfe_cBenef = fields.Char(
string="cBenef")
nfe_EXTIPI = fields.Char(
string="Código EX TIPI (3 posições)")
nfe_CFOP = fields.Char(
string="Cfop", xsd_required=True)
nfe_uCom = fields.Char(
string="Unidade comercial", xsd_required=True)
nfe_qCom = fields.Monetary(
digits=4, string="Quantidade Comercial do produto",
xsd_required=True,
help=("Quantidade Comercial do produto, alterado para aceitar de 0 a"
"4 casas decimais e 11 inteiros."))
nfe_vUnCom = fields.Monetary(
digits=0, string="Valor unitário de comercialização",
xsd_required=True,
help=("Valor unitário de comercialização - alterado para aceitar 0 a"
"10 casas decimais e 11 inteiros"))
nfe_vProd = fields.Monetary(
digits=2, string="Valor bruto do produto ou serviço.",
xsd_required=True)
nfe_cEANTrib = fields.Char(
string="GTIN", xsd_required=True,
help=("GTIN (Global Trade Item Number) da unidade tributável, antigo"
"código EAN ou código de barras"))
nfe_uTrib = fields.Char(
string="Unidade Tributável", xsd_required=True)
nfe_qTrib = fields.Monetary(
digits=4, string="Quantidade Tributável", xsd_required=True,
help=("Quantidade Tributável - alterado para aceitar de 0 a 4 casas"
"decimais e 11 inteiros"))
nfe_vUnTrib = fields.Monetary(
digits=0, string="Valor unitário de tributação",
xsd_required=True,
help=("Valor unitário de tributação - - alterado para aceitar 0 a 10"
"casas decimais e 11 inteiros"))
nfe_vFrete = fields.Monetary(
digits=2, string="Valor Total do Frete")
nfe_vSeg = fields.Monetary(
digits=2, string="Valor Total do Seguro")
nfe_vDesc = fields.Monetary(
digits=2, string="Valor do Desconto")
nfe_vOutro = fields.Monetary(
digits=2, string="Outras despesas acessórias")
nfe_indTot = fields.Selection(
indTotType,
string="Este campo deverá ser preenchido com",
xsd_required=True,
help=("Este campo deverá ser preenchido com:"
"0 – o valor do item (vProd) não compõe o valor total da NF-e"
"(vProd)"
"1 – o valor do item (vProd) compõe o valor total da NF-e"
"(vProd)"))
nfe_DI = fields.One2many(
"nfe.v4_00.di",
"nfe_DI_prod_id",
string="Delcaração de Importação",
help=("Delcaração de Importação"
"(NT 2011/004)")
)
nfe_detExport = fields.One2many(
"nfe.v4_00.detexport",
"nfe_detExport_prod_id",
string="Detalhe da exportação"
)
nfe_xPed = fields.Char(
string="pedido de compra",
help=("pedido de compra - Informação de interesse do emissor para"
"controle do B2B."))
nfe_nItemPed = fields.Char(
string="Número do Item do Pedido de Compra",
help=("Número do Item do Pedido de Compra - Identificação do número"
"do item do pedido de Compra"))
nfe_nFCI = fields.Char(
string="Número de controle da FCI",
help="Número de controle da FCI - Ficha de Conteúdo de Importação.")
nfe_rastro = fields.One2many(
"nfe.v4_00.rastro",
"nfe_rastro_prod_id",
string="rastro"
)
nfe_veicProd = fields.Many2one(
"nfe.v4_00.veicprod",
choice='9',
string="Veículos novos")
nfe_med = fields.Many2one(
"nfe.v4_00.med",
choice='9',
string="grupo do detalhamento de Medicamentos e de matérias",
help=("grupo do detalhamento de Medicamentos e de matérias-primas"
"farmacêuticas"))
nfe_arma = fields.One2many(
"nfe.v4_00.arma",
"nfe_arma_prod_id",
choice='9',
string="Armamentos"
)
nfe_comb = fields.Many2one(
"nfe.v4_00.comb",
choice='9',
string="Informar apenas para operações com combustíveis líquidos")
nfe_nRECOPI = fields.Char(
choice='9',
string="Número do RECOPI")
class rastro(spec_models.AbstractSpecMixin):
_description = 'rastro'
_name = 'nfe.v4_00.rastro'
_generateds_type = 'rastroType'
_concrete_class = None
_concrete_rec_name = 'nfe_nLote'
nfe_rastro_prod_id = fields.Many2one(
"nfe.v4_00.prod")
nfe_nLote = fields.Char(
string="Número do lote do produto.",
xsd_required=True)
nfe_qLote = fields.Monetary(
digits=3, string="Quantidade de produto no lote.",
xsd_required=True)
nfe_dFab = fields.Char(
string="Data de fabricação/produção",
xsd_required=True,
help="Data de fabricação/produção. Formato 'AAAA-MM-DD'.")
nfe_dVal = fields.Char(
string="Data de validade", xsd_required=True,
help=("Data de validade. Informar o último dia do mês caso a validade"
"não especifique o dia. Formato 'AAAA-MM-DD'."))
nfe_cAgreg = fields.Char(
string="cAgreg")
class refECF(spec_models.AbstractSpecMixin):
"Grupo do Cupom Fiscal vinculado à NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.refecf'
_generateds_type = 'refECFType'
_concrete_class = None
_concrete_rec_name = 'nfe_mod'
nfe_mod = fields.Selection(
modType3,
string="Código do modelo do Documento Fiscal",
xsd_required=True,
help=("Código do modelo do Documento Fiscal"
"Preencher com '2B', quando se tratar de Cupom Fiscal emitido"
"por máquina registradora (não ECF), com '2C',"
"quando se tratar de Cupom Fiscal PDV, ou '2D',"
"quando se tratar de Cupom Fiscal (emitido por"
"ECF)"))
nfe_nECF = fields.Char(
string="nECF", xsd_required=True,
help=("Informar o número de ordem seqüencial do ECF que emitiu o"
"Cupom Fiscal vinculado à NF-e"))
nfe_nCOO = fields.Char(
string="Informar o Número do Contador de Ordem de Operação",
xsd_required=True,
help=("Informar o Número do Contador de Ordem de Operação - COO"
"vinculado à NF-e"))
class refNFP(spec_models.AbstractSpecMixin):
"Grupo com as informações NF de produtor referenciada"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.refnfp'
_generateds_type = 'refNFPType'
_concrete_class = None
_concrete_rec_name = 'nfe_cUF'
nfe_choice5 = fields.Selection([
('nfe_CNPJ', 'CNPJ'),
('nfe_CPF', 'CPF')],
"CNPJ/CPF",
default="nfe_CNPJ")
nfe_cUF = fields.Selection(
TCodUfIBGE,
string="cUF", xsd_required=True,
help=("Código da UF do emitente do Documento FiscalUtilizar a Tabela"
"do IBGE (Anexo IV - Tabela de UF, Município e"
"País)"))
nfe_AAMM = fields.Char(
string="AAMM da emissão da NF de produtor",
xsd_required=True)
nfe_CNPJ = fields.Char(
choice='5',
string="CNPJ do emitente da NF de produtor",
xsd_required=True)
nfe_CPF = fields.Char(
choice='5',
string="CPF do emitente da NF de produtor",
xsd_required=True)
nfe_IE = fields.Char(
string="IE do emitente da NF de Produtor",
xsd_required=True)
nfe_mod = fields.Selection(
modType2,
string="Código do modelo do Documento Fiscal",
xsd_required=True,
help=("Código do modelo do Documento Fiscal - utilizar 04 para NF de"
"produtor ou 01 para NF Avulsa"))
nfe_serie = fields.Char(
string="Série do Documento Fiscal",
xsd_required=True,
help="Série do Documento Fiscal, informar zero se inexistentesérie")
nfe_nNF = fields.Char(
string="Número do Documento Fiscal",
xsd_required=True,
help="Número do Documento Fiscal - 1 – 999999999")
class refNF(spec_models.AbstractSpecMixin):
"Dados da NF modelo 1/1A referenciada ou NF modelo 2 referenciada"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.refnf'
_generateds_type = 'refNFType'
_concrete_class = None
_concrete_rec_name = 'nfe_cUF'
nfe_cUF = fields.Selection(
TCodUfIBGE,
string="Código da UF do emitente do Documento Fiscal",
xsd_required=True,
help=("Código da UF do emitente do Documento Fiscal. Utilizar a"
"Tabela do IBGE."))
nfe_AAMM = fields.Char(
string="AAMM da emissão", xsd_required=True)
nfe_CNPJ = fields.Char(
string="CNPJ do emitente do documento fiscal referenciado",
xsd_required=True)
nfe_mod = fields.Selection(
modType,
string="Código do modelo do Documento Fiscal",
xsd_required=True,
help=("Código do modelo do Documento Fiscal. Utilizar 01 para NF"
"modelo 1/1A e 02 para NF modelo 02"))
nfe_serie = fields.Char(
string="Série do Documento Fiscal",
xsd_required=True,
help="Série do Documento Fiscal, informar zero se inexistente")
nfe_nNF = fields.Char(
string="Número do Documento Fiscal",
xsd_required=True)
class retTransp(spec_models.AbstractSpecMixin):
"Dados da retenção ICMS do Transporte"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.rettransp'
_generateds_type = 'retTranspType'
_concrete_class = None
_concrete_rec_name = 'nfe_vServ'
nfe_vServ = fields.Monetary(
digits=2, string="Valor do Serviço", xsd_required=True)
nfe_vBCRet = fields.Monetary(
digits=2, string="BC da Retenção do ICMS",
xsd_required=True)
nfe_pICMSRet = fields.Monetary(
digits=2, string="Alíquota da Retenção",
xsd_required=True)
nfe_vICMSRet = fields.Monetary(
digits=2, string="Valor do ICMS Retido",
xsd_required=True)
nfe_CFOP = fields.Char(
string="Código Fiscal de Operações e Prestações",
xsd_required=True)
nfe_cMunFG = fields.Char(
string="Código do Município de Ocorrência do Fato Gerador",
xsd_required=True,
help=("Código do Município de Ocorrência do Fato Gerador (utilizar a"
"tabela do IBGE)"))
class retTrib(spec_models.AbstractSpecMixin):
"Retenção de Tributos Federais"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.rettrib'
_generateds_type = 'retTribType'
_concrete_class = None
_concrete_rec_name = 'nfe_vRetPIS'
nfe_vRetPIS = fields.Monetary(
digits=2, string="Valor Retido de PIS")
nfe_vRetCOFINS = fields.Monetary(
digits=2, string="Valor Retido de COFINS")
nfe_vRetCSLL = fields.Monetary(
digits=2, string="Valor Retido de CSLL")
nfe_vBCIRRF = fields.Monetary(
digits=2, string="Base de Cálculo do IRRF")
nfe_vIRRF = fields.Monetary(
digits=2, string="Valor Retido de IRRF")
nfe_vBCRetPrev = fields.Monetary(
digits=2, string="Base de Cálculo da Retenção da Previdêncica Social")
nfe_vRetPrev = fields.Monetary(
digits=2, string="Valor da Retenção da Previdêncica Social")
class total(spec_models.AbstractSpecMixin):
"Dados dos totais da NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.total'
_generateds_type = 'totalType'
_concrete_class = None
_concrete_rec_name = 'nfe_ICMSTot'
nfe_ICMSTot = fields.Many2one(
"nfe.v4_00.icmstot",
string="Totais referentes ao ICMS",
xsd_required=True)
nfe_ISSQNtot = fields.Many2one(
"nfe.v4_00.issqntot",
string="Totais referentes ao ISSQN")
nfe_retTrib = fields.Many2one(
"nfe.v4_00.rettrib",
string="Retenção de Tributos Federais")
class transp(spec_models.AbstractSpecMixin):
"Dados dos transportes da NF-e"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.transp'
_generateds_type = 'transpType'
_concrete_class = None
_concrete_rec_name = 'nfe_modFrete'
nfe_choice18 = fields.Selection([
('nfe_veicTransp', 'veicTransp'),
('nfe_reboque', 'reboque'),
('nfe_vagao', 'vagao'),
('nfe_balsa', 'balsa')],
"veicTransp/reboque/vagao/balsa",
default="nfe_veicTransp")
nfe_modFrete = fields.Selection(
modFreteType,
string="Modalidade do frete",
xsd_required=True,
help=("Modalidade do frete"
"0- Contratação do Frete por conta do Remetente (CIF);"
"1- Contratação do Frete por conta do destinatário/remetente"
"(FOB);"
"2- Contratação do Frete por conta de terceiros;"
"3- Transporte próprio por conta do remetente;"
"4- Transporte próprio por conta do destinatário;"
"9- Sem Ocorrência de transporte."))
nfe_transporta = fields.Many2one(
"nfe.v4_00.transporta",
string="Dados do transportador")
nfe_retTransp = fields.Many2one(
"nfe.v4_00.rettransp",
string="Dados da retenção ICMS do Transporte",
help="Dados da retenção ICMS do Transporte")
nfe_veicTransp = fields.Many2one(
"nfe.v4_00.tveiculo",
choice='18',
string="Dados do veículo")
nfe_reboque = fields.One2many(
"nfe.v4_00.tveiculo",
"nfe_reboque_transp_id",
choice='18',
string="Dados do reboque/Dolly (v2.0)"
)
nfe_vagao = fields.Char(
choice='18',
string="Identificação do vagão (v2.0)")
nfe_balsa = fields.Char(
choice='18',
string="Identificação da balsa (v2.0)")
nfe_vol = fields.One2many(
"nfe.v4_00.vol",
"nfe_vol_transp_id",
string="Dados dos volumes"
)
class transporta(spec_models.AbstractSpecMixin):
"Dados do transportador"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.transporta'
_generateds_type = 'transportaType'
_concrete_class = None
_concrete_rec_name = 'nfe_CNPJ'
nfe_choice19 = fields.Selection([
('nfe_CNPJ', 'CNPJ'),
('nfe_CPF', 'CPF')],
"CNPJ/CPF",
default="nfe_CNPJ")
nfe_CNPJ = fields.Char(
choice='19',
string="CNPJ do transportador")
nfe_CPF = fields.Char(
choice='19',
string="CPF do transportador")
nfe_xNome = fields.Char(
string="Razão Social ou nome do transportador")
nfe_IE = fields.Char(
string="Inscrição Estadual (v2.0)")
nfe_xEnder = fields.Char(
string="Endereço completo")
nfe_xMun = fields.Char(
string="Nome do munícipio")
nfe_UF = fields.Selection(
TUf,
string="Sigla da UF")
class veicProd(spec_models.AbstractSpecMixin):
"Veículos novos"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.veicprod'
_generateds_type = 'veicProdType'
_concrete_class = None
_concrete_rec_name = 'nfe_tpOp'
nfe_tpOp = fields.Selection(
tpOpType,
string="Tipo da Operação", xsd_required=True,
help=("Tipo da Operação (1 - Venda concessionária; 2 - Faturamento"
"direto; 3 - Venda direta; 0 - Outros)"))
nfe_chassi = fields.Char(
string="Chassi do veículo - VIN",
xsd_required=True,
help="Chassi do veículo - VIN (código-identificação-veículo)")
nfe_cCor = fields.Char(
string="Cor do veículo", xsd_required=True,
help="Cor do veículo (código de cada montadora)")
nfe_xCor = fields.Char(
string="Descrição da cor", xsd_required=True)
nfe_pot = fields.Char(
string="Potência máxima do motor do veículo em cavalo vapor",
xsd_required=True,
help=("Potência máxima do motor do veículo em cavalo vapor (CV)."
"(potência-veículo)"))
nfe_cilin = fields.Char(
string="Capacidade voluntária do motor expressa em centímetros cúbicos",
xsd_required=True,
help=("Capacidade voluntária do motor expressa em centímetros cúbicos"
"(CC). (cilindradas)"))
nfe_pesoL = fields.Char(
string="Peso líquido", xsd_required=True)
nfe_pesoB = fields.Char(
string="Peso bruto", xsd_required=True)
nfe_nSerie = fields.Char(
string="Serial (série)", xsd_required=True)
nfe_tpComb = fields.Char(
string="Tipo de combustível", xsd_required=True,
help=("Tipo de combustível-Tabela RENAVAM: 01-Álcool; 02-Gasolina;"
"03-Diesel; 16-Álcool/Gas.; 17-Gas./Álcool/GNV;"
"18-Gasolina/Elétrico"))
nfe_nMotor = fields.Char(
string="Número do motor", xsd_required=True)
nfe_CMT = fields.Char(
string="CMT", xsd_required=True,
help=("CMT-Capacidade Máxima de Tração - em Toneladas 4 casas"
"decimais"))
nfe_dist = fields.Char(
string="Distância entre eixos", xsd_required=True)
nfe_anoMod = fields.Char(
string="Ano Modelo de Fabricação",
xsd_required=True)
nfe_anoFab = fields.Char(
string="Ano de Fabricação", xsd_required=True)
nfe_tpPint = fields.Char(
string="Tipo de pintura", xsd_required=True)
nfe_tpVeic = fields.Char(
string="Tipo de veículo", xsd_required=True,
help="Tipo de veículo (utilizar tabela RENAVAM)")
nfe_espVeic = fields.Char(
string="Espécie de veículo", xsd_required=True,
help="Espécie de veículo (utilizar tabela RENAVAM)")
nfe_VIN = fields.Selection(
VINType,
string="Informa-se o veículo tem VIN",
xsd_required=True,
help="Informa-se o veículo tem VIN (chassi) remarcado.")
nfe_condVeic = fields.Selection(
condVeicType,
string="Condição do veículo",
xsd_required=True,
help=("Condição do veículo (1 - acabado; 2 - inacabado; 3 - semi-"
"acabado)"))
nfe_cMod = fields.Char(
string="Código Marca Modelo", xsd_required=True,
help="Código Marca Modelo (utilizar tabela RENAVAM)")
nfe_cCorDENATRAN = fields.Char(
string="Código da Cor Segundo as regras de pré",
xsd_required=True,
help=("Código da Cor Segundo as regras de pré-cadastro do DENATRAN: 0"
"1-AMARELO;02-AZUL;03-BEGE;04-BRANCA;05-CINZA;06-"
"DOURADA;07-GRENA"
"08-LARANJA;09-MARROM;10-PRATA;11-PRETA;12-ROSA;13-ROXA;14-VERD"
"E;15-VERMELHA;16-FANTASIA"))
nfe_lota = fields.Char(
string="Quantidade máxima de permitida de passageiros sentados",
xsd_required=True,
help=("Quantidade máxima de permitida de passageiros sentados,"
"inclusive motorista."))
nfe_tpRest = fields.Selection(
tpRestType,
string="Restrição", xsd_required=True,
help=("Restrição"
"0 - Não há;"
"1 - Alienação Fiduciária;"
"2 - Arrendamento Mercantil;"
"3 - Reserva de Domínio;"
"4 - Penhor de Veículos;"
"9 - outras."))
class vol(spec_models.AbstractSpecMixin):
"Dados dos volumes"
_description = textwrap.dedent(" %s" % (__doc__,))
_name = 'nfe.v4_00.vol'
_generateds_type = 'volType'
_concrete_class = None
_concrete_rec_name = 'nfe_qVol'
nfe_vol_transp_id = fields.Many2one(
"nfe.v4_00.transp")
nfe_qVol = fields.Char(
string="Quantidade de volumes transportados")
nfe_esp = fields.Char(
string="Espécie dos volumes transportados")
nfe_marca = fields.Char(
string="Marca dos volumes transportados")
nfe_nVol = fields.Char(
string="Numeração dos volumes transportados")
nfe_pesoL = fields.Monetary(
digits=3, string="Peso líquido (em kg)")
nfe_pesoB = fields.Monetary(
digits=3, string="Peso bruto (em kg)")
nfe_lacres = fields.One2many(
"nfe.v4_00.lacres",
"nfe_lacres_vol_id",
string="lacres"
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment