Pular para conteúdo

Como Alterar a Geração do TX2

Objetivo

Guia prático para quem precisa alterar o valor de um campo no TX2 ou no boleto, organizado por nível de intervenção: do mais simples (configuração) ao mais complexo (código).


Checklist Geral: "O campo X está errado, o que faço?"

flowchart TD
    A["Campo TX2 incorreto"] --> B{"O campo vem de um cadastro?"}
    B -->|Sim| C["Alterar Empresa, Parceiro, Produto ou Operação"]
    B -->|Não| D{"O campo é controlado por parâmetro de sistema?"}
    D -->|Sim| E["Alterar em Configurações → Técnico → Parâmetros"]
    D -->|Não| F{"O campo é calculado pelo motor fiscal?"}
    F -->|Sim| G["Revisar operação fiscal, CFOP, tabela NCM/UF"]
    F -->|Não| H{"O campo tem hook de herança?"}
    H -->|Sim| I["Usar _get_l10n_br_invoice_vals() ou similar"]
    H -->|Não| J["Alterar código fonte"]

Nível 1 — Configuração no Cadastro

Empresa (res.company)

Campo Odoo Afeta no TX2 Menu
l10n_br_cnpj CNPJ_C02 Contabilidade → Config → Empresa
l10n_br_razao_social xNome_C03 Contabilidade → Config → Empresa
l10n_br_ie IE_C17 Contabilidade → Config → Empresa
l10n_br_im InscricaoMunicipalPrestador NFS-e Contabilidade → Config → Empresa
l10n_br_municipio_id cMun_C10, cMunFG_B12, variações NFS-e Contabilidade → Config → Empresa
l10n_br_regime_tributario CRT_C21, OptanteSimplesNacional Contabilidade → Config → Empresa
l10n_br_cnae CodigoCnae NFS-e Contabilidade → Config → Empresa

Parceiro (res.partner)

Campo Odoo Afeta no TX2 Menu
l10n_br_cnpj CNPJ_E02, SacadoCPFCNPJ Contatos → Parceiro
l10n_br_razao_social xNome_E04, SacadoNome Contatos → Parceiro
l10n_br_indicador_ie INDIEDEST_E16A Contatos → Parceiro
l10n_br_ie IE_E17 Contatos → Parceiro
l10n_br_endereco_numero nro_E07, SacadoEnderecoNumero Contatos → Parceiro
l10n_br_endereco_bairro xBairro_E09 (máx 60) Contatos → Parceiro
l10n_br_municipio_id cMun_E10 Contatos → Parceiro

Produto (product.template)

Campo Odoo Afeta no TX2 Menu
default_code cProd_I02 Vendas → Produtos
barcode cEAN_I03 Vendas → Produtos
l10n_br_ncm_id NCM_I05, CEST_I05c Vendas → Produtos
l10n_br_origem orig_N11 Vendas → Produtos
l10n_br_codigo_servico CodigoItemListaServico NFS-e Vendas → Produtos
l10n_br_fci nFCI_I70 Vendas → Produtos
l10n_br_registro_anvisa cProdANVISA_K01a Vendas → Produtos
l10n_br_registro_anp cProdANP_LA02 Vendas → Produtos

Operação Fiscal

Campo Afeta no TX2 Menu
descricao_nf natOp_B04 Vendas → Configuração → Fiscal → Operação
l10n_br_finalidade finNFe_B25 Idem
l10n_br_gera_ibpt Se calcula IBPT Idem

Documento Fiscal

Campo Afeta no TX2 Menu
l10n_br_versao versao_A02 Vendas → Configuração → Fiscal → Tipo Documento
l10n_br_modelo mod_B06 Idem
l10n_br_serie_nfe serie_B07 (fallback) Idem
l10n_br_ambiente tpAmb_B24 Idem
l10n_br_tipo_emissao tpEmis_B22 Idem
l10n_br_formato_impressao tpImp_B21 Idem

Condição de Pagamento / Provider

Campo Afeta no TX2 Menu
l10n_br_indicador indPag_YA01b Contabilidade → Config → Condições Pgto
l10n_br_meio tPag_YA02 Idem
l10n_br_cobranca_id Vincula cobrança escritural Idem

Incoterm

Campo Afeta no TX2 Menu
l10n_br_modalidade_frete modFrete_X02 Contabilidade → Fatura → Incoterm

Nível 2 — Parâmetros de Sistema

Menu: Configurações → Técnico → Parâmetros do Sistema

Parâmetro Padrão O que altera
l10n_br_ciel_it_account.num_decimal_quantidade_nfe 4 Decimais na quantidade
l10n_br_ciel_it_account.num_decimal_valor_unit_nfe 10 Decimais no valor unitário
l10n_br_ciel_it_account.show_datasaida_nf 1 Se mostra data de saída
l10n_br_ciel_it_account.show_email_xml_nf 1 Se inclui e-mail no XML
l10n_br_ciel_it_account.ean_xml_nfe 1 Se envia EAN/GTIN
l10n_br_ciel_it_account.ean_xml_nfce 1 Se envia EAN/GTIN NFC-e
l10n_br_ciel_it_account.split_infoadprod_xprod_xml_nfe 0 Se split xProd > 120
l10n_br_ciel_it_account.qty_lot_xml_nfe 0 Se mostra qtd no lote
l10n_br_ciel_it_account.imprimir_validade_danfe 1 Se mostra validade
l10n_br_ciel_it_account.imprimir_pedido_compra_item 1 Se mostra pedido de compra
l10n_br_ciel_it_account.agrupar_parcelas_cartao 0 Se agrupa parcelas cartão
l10n_br_ciel_it_account.email_nfe_automatico 0 Se envia e-mail automático
l10n_br_ciel_it_account.unificar_item_nfse 0 Se unifica itens NFS-e
l10n_br_ciel_it_account.add_infoadicional_nfse 0 Se add info adicional NFS-e
l10n_br_ciel_it_account.gerar_sequencia_previsualizar_danfe 0 Se gera número ao preview

Nível 3 — Motor Fiscal

Campos que dependem do resultado de simulate_impostos():

  • Todos os campos de CST (ICMS, IPI, PIS, COFINS)
  • Bases, alíquotas e valores de impostos
  • CFOP
  • Retenções

Para alterar: Revisar as operações fiscais e tabelas de exceção NCM/UF antes de mexer em código.


Nível 4 — Hooks de Herança

O código oferece hooks para customização sem alterar o core:

Hook Propósito
_get_l10n_br_invoice_vals(invoice_vals, invoice) Customizar campos do cabeçalho NF-e
_get_l10n_br_invoice_line_vals(invoice_line_vals, invoice_line) Customizar campos do item
_get_l10n_br_invoice_payments(invoice_payments, invoice) Customizar pagamentos
_get_l10n_br_invoice_duplicates(invoice_duplicates, invoice) Customizar duplicatas
_get_l10n_br_cobranca_id(l10n_br_cobranca_id) Customizar registro de cobrança
_gerar_boleto(invoice_payment) Filtrar quais parcelas geram boleto
_gerar_nfce_bloco_destinatario() Customizar destinatário NFC-e
_gerar_invoice_payment_nfce_tx2() Customizar pagamentos NFC-e

Para equipe técnica: Criar módulo de herança que sobrescreva o hook desejado.


Nível 5 — Alteração de Código

Quando o campo desejado está fixo no código (FIXO) ou não existe hook de herança.

Checklist antes de alterar código

  1. ✅ Confirmar que não existe parâmetro de sistema
  2. ✅ Confirmar que não existe cadastro configurável
  3. ✅ Confirmar que não existe hook de herança
  4. ✅ Confirmar com funcional qual o comportamento desejado
  5. ✅ Verificar impacto em outros cenários (NF-e, NFC-e, NFS-e)
  6. ✅ Testar em ambiente de homologação

Cenários Comuns

"Quero mudar a descrição do produto no TX2"

→ Alterar campo name na linha da fatura (não no produto, pois a fatura já copiou o valor)

"O EAN não deveria aparecer no XML"

→ Alterar parâmetro l10n_br_ciel_it_account.ean_xml_nfe para 0

"O e-mail do cliente não deve ir no XML"

→ Alterar parâmetro l10n_br_ciel_it_account.show_email_xml_nf para 0

"O vencimento do boleto está errado"

→ Verificar date_maturity na parcela (account.move.line)

"Juros/multa do boleto estão incorretos"

→ Verificar configuração do registro de cobrança (juros, multa, dias)

"O CNPJ do emitente está errado"

→ Verificar se a operação fiscal tem corredor de importação configurado

"A data de emissão está errada"

→ A data é calculada em tempo real (datetime.now(SP)). Para retroativa, ativar l10n_br_data_retroativa

"A NFS-e está gerando com código de serviço errado"

→ Verificar l10n_br_codigo_servico no cadastro do produto

"O município está gerando campos extras/faltantes na NFS-e"

→ Verificar código IBGE do município emitente — há tratamentos específicos por município no código


Referências