Pular para o conteúdo

O Modelo account.move.line: Compreendendo as Linhas de Lançamento do Odoo

Um guia completo sobre o modelo de linha de lançamento do diário do Odoo para desenvolvedores e consultores funcionais
10 de março de 2026 por
O Modelo account.move.line: Compreendendo as Linhas de Lançamento do Odoo
Dasolo
| Nenhum comentário ainda

Introdução


No Odoo, os modelos definem como os dados são estruturados e armazenados na base de dados. Cada pedaço de dados empresariais com o qual você trabalha, desde pedidos de venda a faturas e lançamentos de diário, vive em um modelo.


Compreender os modelos do Odoo é essencial tanto para desenvolvedores quanto para consultores funcionais. Os modelos são a base da arquitetura de dados do Odoo. Eles definem os campos do Odoo, relacionamentos e lógica de negócios.

Este artigo foca em um dos modelos mais importantes na contabilidade do Odoo: account.move.line. Quer você esteja construindo relatórios personalizados, integrando sistemas externos ou configurando fluxos de trabalho de reconciliação, você trabalhará com este modelo.

O que é o modelo account.move.line


O modelo account.move.line representa linhas individuais de lançamentos contábeis no Odoo. Cada linha é um débito ou crédito em um lançamento contábil. Juntas, as linhas de um lançamento contábil devem equilibrar: o total de débitos deve ser igual ao total de créditos.


Este modelo no Odoo é utilizado pelo módulo de Contabilidade. É o filho de account.move, que representa o próprio lançamento contábil (faturas, contas a pagar, extratos bancários, lançamentos contábeis). Cada lançamento contábil possui uma ou mais linhas.


O modelo é definido no módulo de conta. Outros módulos o estendem através da herança de modelos do Odoo. Vendas adiciona detalhes da linha de fatura. Compras adiciona detalhes da linha de conta a pagar. Contabilidade analítica adiciona distribuição analítica. Cada módulo adiciona o que precisa sem duplicar a estrutura central.

Campos-chave no modelo


Aqui estão os campos mais importantes do Odoo no modelo account.move.line. Compreender estes ajudará você a trabalhar de forma eficaz com lançamentos contábeis e dados contábeis.


1. nome

Tipo: Char. Este campo armazena o rótulo ou descrição da linha. É obrigatório e tipicamente exibido nas visualizações e relatórios de lançamentos contábeis. Para linhas de fatura, muitas vezes vem do nome do produto ou de uma descrição personalizada.


2. move_id

Tipo: Many2one (account.move). Liga a linha ao seu lançamento contábil pai. Cada linha pertence exatamente a um lançamento. Esta é a principal relação no modelo.


3. account_id

Tipo: Many2one (account.account). A conta à qual esta linha é lançada. Obrigatório. Deve ser uma conta não visualizável e não encerrada. Usada para relatórios e agrupamentos do plano de contas.


4. débito

Tipo: Float. O valor do débito. O padrão é 0.0. Para cada linha, ou o débito ou o crédito é definido, não ambos. Débitos aumentam contas de ativos e despesas.


5. crédito

Tipo: Float. O montante do crédito. O padrão é 0.0. Os créditos aumentam as contas de passivo, patrimônio líquido e receita. A soma de todos os débitos deve ser igual à soma de todos os créditos em um movimento.


6. saldo

Tipo: Float. Um campo calculado: débito menos crédito. Representa o efeito líquido da linha. Positivo para débitos, negativo para créditos. Usado em relatórios e reconciliações.


7. partner_id

Tipo: Many2one (res.partner). O cliente, fornecedor ou outra parte vinculada a esta linha. Usado para rastreamento de contas a receber e a pagar, relatórios de envelhecimento e reconciliação.


8. data

Tipo: Data. A data efetiva da linha. Geralmente herdada do movimento pai. Usado para fechamento de períodos, relatórios e envelhecimento.


9. data_vencimento

Tipo: Data. A data de vencimento para pagamento. Relevante para contas a receber e a pagar. Usado para relatórios de envelhecimento e agendamento de pagamentos.


10. currency_id

Tipo: Many2one (res.currency). A moeda da linha. Pode diferir da moeda da empresa para lançamentos em múltiplas moedas.


11. amount_currency

Tipo: Float. O montante na moeda da linha. Usado quando a entrada do diário está em uma moeda estrangeira. Juntamente com currency_id, permite a contabilidade em múltiplas moedas.


12. quantity

Tipo: Float. Quantidade opcional. Usado para linhas baseadas em produtos (faturas, contas). Permite relatórios baseados em quantidade e cálculos de preço unitário.


13. product_id

Tipo: Many2one (product.product). O produto vinculado a esta linha. Preenchido quando a linha vem de uma ordem de venda, ordem de compra ou linha de fatura.


14. product_uom_id

Tipo: Many2one (uom.uom). A unidade de medida para a quantidade. Usado com product_id para exibição e conversão adequada da quantidade.


15. price_unit

Tipo: Float. O preço unitário. Usado com a quantidade para calcular montantes em linhas de fatura e conta.


16. tax_ids

Tipo: Many2many (account.tax). Impostos aplicados a esta linha. Odoo cria linhas adicionais para montantes de impostos ao postar. Usado para cálculos de IVA e outros impostos.


17. tax_line_id

Tipo: Many2one (account.tax). Para linhas de imposto, isto refere-se ao imposto que gerou a linha. Distinque linhas de imposto de linhas de conta regulares.


18. analytic_account_id

Tipo: Many2one (account.analytic.account). A conta analítica para rastreamento de custos e receitas. Usada quando a contabilidade analítica está ativada.


19. analytic_distribution

Tipo: Json ou Texto. Armazena a distribuição analítica entre várias contas analíticas. Substitui analytic_account_id em versões mais recentes do Odoo ao usar planos analíticos.


20. ref

Tipo: Char. Geralmente relacionado ao movimento pai. Referência externa ou nota. Exibido em relatórios e usado para correspondência de reconciliação.


21. narration

Tipo: Texto. Geralmente relacionado ao movimento pai. Nota interna ou memo. Não impresso em documentos voltados para o cliente por padrão.


22. journal_id

Tipo: Many2one (account.journal). O diário do movimento pai. Usado para filtragem e relatórios por diário.


23. company_id

Tipo: Many2one (res.company). A empresa. Em configurações de múltiplas empresas, cada linha pertence a uma empresa. Afeta a visibilidade e consolidação dos registros.


24. reconciled

Tipo: Booleano. Indica se a linha foi totalmente reconciliada. Usado para filtrar itens não reconciliados em visualizações de reconciliação.


25. full_reconcile_id

Tipo: Many2one (account.full.reconcile). Liga todas as linhas que foram reconciliadas juntas. Permite rastrear grupos de reconciliação.


26. payment_id

Tipo: Many2one (account.payment). Para linhas de pagamento, liga ao registro de pagamento. Usado ao reconciliar faturas com pagamentos.


27. statement_id

Tipo: Many2one (account.bank.statement). Para linhas de extrato bancário, liga ao extrato. Usado na reconciliação bancária.


28. statement_line_id

Tipo: Many2one (account.bank.statement.line). Liga à linha específica do extrato bancário. Usado ao corresponder movimentos a transações bancárias.


29. display_type

Tipo: Seleção. Pode ser 'line_section' ou 'line_note' para cabeçalhos de seção e notas na entrada do diário. Estas linhas não têm débito ou crédito e são apenas para exibição.


30. create_date

Tipo: Data e hora. Armazena quando o registro foi criado. Gerido automaticamente pelo Odoo. Útil para auditoria.


31. write_date

Tipo: Data e hora. Armazena quando o registro foi modificado pela última vez. Gerido automaticamente. Ajuda a rastrear mudanças ao longo do tempo.

Como este modelo é utilizado em fluxos de trabalho empresariais


1. Faturação de Clientes

Quando você confirma uma fatura, o Odoo cria registros account.move.line. As linhas de receita vão para contas de receita. As linhas a receber vão para a conta a receber do cliente. Linhas de imposto são criadas para cada imposto. O partner_id liga ao cliente para envelhecimento e reconciliação.


2. Faturas de Fornecedores

As faturas criam linhas para despesas, IVA de entrada e contas a pagar. Cada linha tem um account_id, débito ou crédito, e partner_id. A estrutura espelha as faturas de clientes, mas com tipos de conta diferentes.


3. Reconciliação Bancária

As linhas do extrato bancário são correspondidas às linhas de movimento através do statement_line_id. Quando você reconcilia, o Odoo liga as linhas através do full_reconcile_id. O campo reconciliado é definido como Verdadeiro.


4. Lançamentos Manuais

Os utilizadores criam lançamentos com várias linhas. Cada linha tem uma conta, débito ou crédito, e um parceiro opcional. O Odoo impõe que os débitos sejam iguais aos créditos antes da publicação.



5. Relatórios Analíticos e de Custos

Quando a contabilidade analítica está ativada, as linhas têm analytic_account_id ou analytic_distribution. Os relatórios agrupam por conta analítica para mostrar custos e receitas por projeto, departamento ou outra dimensão.

Como os desenvolvedores estendem este modelo


Os desenvolvedores estendem account.move.line usando vários padrões. A herança de modelo do Odoo é o principal mecanismo.


Herança de Modelo

Use _inherit = 'account.move.line' para estender o modelo. Adicione novos campos do Odoo, sobreponha métodos ou adicione restrições. O modelo herdado no Odoo mantém suas alterações em um módulo separado para atualizações fáceis.


Adicionando Campos

Defina novos campos do Odoo no seu modelo herdado. Use o tipo de campo correto: Char, Many2one, Boolean, Integer, Text, Selection. Considere campos dependentes da empresa para multi-empresa. Tenha cuidado com campos computados e suas dependências.


Extensões Python

Sobreponha create, write ou unlink para adicionar lógica. Use super() para chamar o original. Evite quebrar a invariância de débito igual a crédito. O modelo API no Odoo expõe esses métodos para integrações externas.


Odoo Studio

Odoo Studio permite adicionar campos a account.move.line sem código. Bom para personalizações rápidas, como etiquetas ou tags extras. Para lógica complexa ou regras de reconciliação, módulos personalizados são mais fáceis de manter.

Melhores práticas


  • Nunca crie ou modifique linhas de movimento diretamente sem passar pelo movimento. Use a API do movimento (por exemplo, line_ids) para que o Odoo possa manter a consistência e executar todas as verificações.
  • Ao construir relatórios, filtre por move_id.state = 'posted' para excluir rascunhos e entradas canceladas.
  • Use account_id com o tipo de conta correto (a receber, a pagar, etc.) para um comportamento adequado de envelhecimento e reconciliação.
  • Ao integrar via API, crie o movimento primeiro, depois adicione linhas. Certifique-se de que os débitos sejam iguais aos créditos antes de postar.
  • Para campos personalizados, use o prefixo x_ ou um prefixo de módulo para evitar conflitos com versões futuras do Odoo.

Erros comuns


  • Definindo tanto débito quanto crédito na mesma linha. Cada linha deve ter ou débito ou crédito, não ambos.
  • Criando movimentos não equilibrados. A soma dos débitos deve ser igual à soma dos créditos. O Odoo valida isso ao postar.
  • Modificando linhas postadas sem usar o fluxo de reversão ou ajuste apropriado. As entradas postadas devem ser ajustadas via novos movimentos, não edições diretas.
  • Esquecendo de definir partner_id em linhas a receber e a pagar. Isso quebra relatórios de envelhecimento e reconciliação.
  • Substituindo métodos principais sem chamar super(). Isso pode quebrar a reconciliação, bloqueio ou outros módulos.

Conclusão


O modelo account.move.line é central para a Contabilidade do Odoo. Ele armazena cada débito e crédito em lançamentos contábeis, faturas e contas a pagar. Compreender seus campos e como os módulos o estendem ajudará você a configurar, personalizar e integrar o Odoo de forma eficaz.

Seja você um consultor funcional mapeando fluxos de trabalho contábeis ou um desenvolvedor construindo relatórios e integrações personalizados, um sólido entendimento de account.move.line economizará tempo e evitará erros.

Precisa de ajuda com a sua implementação do Odoo?


A Dasolo ajuda empresas a implementar, personalizar e otimizar o Odoo. Especializamo-nos em integrações de API e desenvolvimento Odoo. Nossa equipe tem ampla experiência com a arquitetura de dados do Odoo e modelos como account.move.line.


Se você precisar de ajuda com sua implementação do Odoo, módulos personalizados ou integrações, estamos aqui para ajudar. Agende uma demonstração para discutir seu projeto.

O Modelo account.move.line: Compreendendo as Linhas de Lançamento do Odoo
Dasolo 10 de março de 2026
Compartilhar esta publicação
Iniciar sessão para deixar um comentário