Brazilian Payment Order

l10n_br_account_payment_order
REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/18.0/l10n_br_account_payment_order
VERSION
VERSION 1.0.4
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Weblate, OCA-git-bot, Magno Costa, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-payment:
    - account_due_list
    - account_due_list_payment_mode
OCA/bank-payment:
    - account_payment_order
    - account_payment_partner
    - account_payment_mode
OCA/l10n-brazil:
    - l10n_br_base
    - l10n_br_account_due_list
odoo/odoo:
    - base
    - base_setup
    - web
    - base_address_extended
    - contacts
    - mail
    - bus
    - web_tour
    - html_editor
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
O módulo implementa a parte comum da infra-estrutura necessária para o uso do CNAB implementando:

- **Códigos CNAB** - códigos de Instrução, Retorno, Carteira e Desconto.

- **Configuração CNAB** - onde serão salvas as informações específicas de cada caso como Convênio, Código do Beneficiário, Modalidade, Percentual de Multa, códigos de Instrução do Movimento de Liquidação de Alteração de Vencimento e etc.

- **Modo de Pagamento** - localiza o módulo [account_payment_mode]( https://github.com/OCA/bank-payment/tree/16.0/account_payment_mode) para associar o **Diário Contábil** referente a **Conta Bancária** do CNAB e informar a **Configuração do CNAB** que será usada, assim ao informar o Modo de Pagamento em um Pedido de Venda, Compras ou Faturamento o programa identifica como sendo um caso CNAB.

- **Ordem de Pagamento** - localiza o módulo [account_payment_order](https://github.com/OCA/bank-payment/tree/16.0/account_payment_order) que usa a **Ordem de Pagamento**, débito ou crédito, para registrar as **Instruções de Movimento** e onde será criado o **Arquivo CNAB Remessa**.

- **Registro do LOG de Eventos** - ao importar um arquivo de retorno CNAB.

- **Grupos e Permissões de acesso** - CNAB Usuário e Gerente.

A implementação foi pensada para permitir que seja possível usar diferentes Bibliotecas para **Gerar os Boletos, Arquivo CNAB de Remessa e tratar o Arquivo de Retorno do CNAB** por isso é preciso instalar um segundo módulo que vai ter essa função, portanto a ideia é que nesse módulo deverá estar tudo que for comum para a implementação mas o CNAB não irá funcionar sem esse segundo módulo.

**IMPORTANTE:** Apesar de muitas Documentações do CNAB acabarem dizendo que usam o "Padrão FEBRABAN" na realidade e ao longo dos anos foi visto que existem muitas divergências entre os casos incluindo diferentes Códigos para a mesma função ou mesmo Termos e nomenclaturas que apesar de semelhantes podem acabar confundindo o usuário, por isso essa falta de padrão foi considerada na implementação e na arquitetura do módulo e também precisa ser considerada em manutenções, melhorias ou no uso de outras Bibliotecas, é preciso separar o que é realmente comum do que pode variar entre os Bancos e CNAB, nesse sentido foram incluídos nos Dados de Demonstração mais de um caso para ficar claro aos desenvolvedores essas particularidades e evitar uma arquitetura que desconsidere esse aspecto.

Code Analysis

Views touched (23)
XML IDNameModelTypeStatus
account_journal_form_view account.journal.form (in l10n_br_account_payment_order) account.journal xpath Inherits account.view_account_journal_form
account_move_line_cnab_change_form_view account.move.line.cnab.change.form (in l10n_br_account_payment_order) account.move.line.cnab.change form New
account_payment_line_create_form l10n_br_account_payment_boleto.res.company.form account.payment.line.create field Inherits account_payment_order.account_payment_line_create_form
cnab_account_payment_line_tree cnab.account.payment.line.tree account.payment.line field Inherits account_payment_order.account_payment_line_tree
cnab_return_log_search l10n_br_cnab.return.log.search l10n_br_cnab.return.log search New
cnab_view_move_line_form_inherit cnab.account.move.line.form.inherit account.move.line sheet Inherits account.view_move_line_form
cnab_view_move_line_tree_inherit cnab.account.move.line.tree.inherit account.move.line field Inherits account_due_list.view_payments_tree
l10n_br-view_account_payment_invoice_form l10n_br_account_payment_order.view.account.payment.invoice.form account.payment field Inherits account_payment.view_account_payment_form_inherit_payment
l10n_br_account_payment_mode_form payment.mode.l10n_br_payment.form account.payment.mode field Inherits account_payment_order.account_payment_mode_form
l10n_br_account_payment_order_form l10n_br_account.payment.order.form account.payment.order field Inherits account_payment_order.account_payment_order_form
l10n_br_account_payment_order_payment_line_form l10n_br_account_payment_order.payment.line.form account.payment.line field Inherits account_payment_order.account_payment_line_form
l10n_br_cnab_code_form_view l10n_br_cnab.code.form.view l10n_br_cnab.code form New
l10n_br_cnab_code_search_view l10n_br_cnab.code.search l10n_br_cnab.code search New
l10n_br_cnab_code_tree_view l10n_br_cnab.code.tree l10n_br_cnab.code list New
l10n_br_cnab_config_form_view l10n_br_cnab.config.form.view l10n_br_cnab.config form New
l10n_br_cnab_config_search_view l10n_br_cnab.config.search l10n_br_cnab.config search New
l10n_br_cnab_config_tree_view l10n_br_cnab.config.tree l10n_br_cnab.config list New
l10n_br_cnab_return_event_form_view l10n_br_cnab.return.event.form l10n_br_cnab.return.event form New
l10n_br_cnab_return_event_tree_view l10n_br_cnab.return.event.tree l10n_br_cnab.return.event list New
l10n_br_cnab_return_log_form_view l10n_br_cnab.return.log.form.view l10n_br_cnab.return.log form New
l10n_br_cnab_return_log_tree_view l10n_br_cnab.return.log.tree l10n_br_cnab.return.log list New
l10n_br_cnab_return_lot_form_view l10n_br_cnab.return.lot.form.view l10n_br_cnab.return.lot form New
view_move_cnab_form account.move.cnab.view account.move field Inherits account.view_move_form
Models touched (22)

New fields (1)
  • bank_code_bc Char
    related='bank_id.code_bc'
Public methods (0)

No public methods.

New fields (7)
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' readonly=True string='CNAB Return Log'
  • eval_payment_mode_instructions Text
    help='Instruções Ordem de Pagamento configuradas na Configuração do CNAB' related='cnab_config_id.instructions' string='Instruções de Cobrança do Modo de Pagamento'
  • file_boleto_pdf_id Many2one → ir.attachment
    comodel_name='ir.attachment' copy=False ondelete='restrict' string='Boleto PDF'
  • instructions Text
    help='Instruções Extras da Ordem de Pagamento' string='Instruções de cobrança'
  • is_cnab Boolean
    string='Is CNAB?'
  • payment_method_code Char
    related='payment_mode_id.payment_method_id.code'
Public methods (6)
  • button_cancel(self)
  • generate_boleto_pdf(self)
    Classe a ser herdada pelo modulo que implementa a biblioteca ou API, deve anexar o PDF com boletos
  • get_invoice_fiscal_number(self)
    Como neste modulo não temos o número do documento fiscal, testamos a presença desse campo e se o módulo fiscal não tiver instalado, retornamos o name do invoice/account.move do core.
  • load_cnab_info(self)
  • unlink(self)
  • view_boleto_pdf(self)

New fields (16)
  • boleto_discount_perc Float
    digits='Account' help='Percentual de Desconto até a Data de Vencimento' related='cnab_config_id.boleto_discount_perc' string='Desconto de pontualidade'
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_return_line_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='move_line_id' readonly=True string='Retornos CNAB'
  • cnab_state Selection
    copy=False selection=ESTADOS_CNAB string='Estados CNAB'
  • company_title_identification Char
    copy=False string='Identificação Titulo Empresa'
  • document_number Char
    copy=False string='Número documento'
  • instruction_move_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' copy=False help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • instructions Text
    copy=False readonly=True string='Instruções de cobrança'
  • journal_payment_mode_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_journal_payment_mode' copy=False store=True
  • last_change_reason Text
    copy=False readonly=True string='Justificativa'
  • own_number Char
    copy=False string='Nosso Numero'
  • own_number_without_zfill Char
    compute='_compute_own_number_without_zfill' copy=False store=True
  • payment_method_code Char
    related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_id Many2one
    string='Modo de Pagamento'
  • payment_situation Selection
    copy=False default='inicial' selection=SITUACAO_PAGAMENTO string='Situação do Pagamento'
Public methods (5)
  • create_payment_line_from_move_line(self, payment_order)
    Altera estado do cnab para adicionado a ordem :param payment_order: :return:
  • generate_boleto(self, validate=True)
  • get_balance(self)
    Return the balance of any set of move lines. Not to be confused with the 'balance' field on this model, which returns the account balance that the move line applies to.
  • reconcile(self)
  • write(self, values)
    Sobrescrita do método Write. Não deve ser possível voltar o cnab_state ou a situacao_pagamento para um estado anterior :param values: :return:

New fields (7)
  • account_move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' readonly=True string='Move Line'
  • change_type Selection
    selection=[('change_discount_date', 'Data de Desconto'), ('change_date_maturity', 'Vencimento'), ('not_payment', 'Baixa por Não Pagamento/Inadimplência'), ('protest_tittle', 'Protestar Titulo'), ('suspend_protest_keep_wallet', 'Sustar Protesto e Manter em Carteira'), ('grant_rebate', 'Conceder Abatimento'), ('cancel_rebate', 'Cancelar Abatimento'), ('grant_discount', 'Conceder Desconto'), ('cancel_discount', 'Cancelar Desconto')] string='Tipo Alteração'
  • date Date
  • discount_value Float
    string='Valor de Desconto'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode'
  • reason Text
    string='Justificativa'
  • rebate_value Float
    string='Valor de Abatimento'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • doit(self)

New fields (1)
  • already_send_cnab Boolean
    string='Already send CNAB'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • action_post(self)

New fields (28)
  • amount_interest Float
    compute='_compute_interest' digits='Account' string='Valor Juros'
  • barcode Char
    help='This field is used in the payment of supplier slips'
  • communication_type Selection
    ondelete={'cnab': 'set default'} selection_add=[('cnab', 'CNAB')]
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • digitable_line Char
    string='Linha Digitável'
  • discount_value Monetary
    help='Campo G046 do CNAB' string='Valor do Desconto'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • document_number Char
    string='Número documento'
  • favored_warning Selection
    default='0' help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • fee_value Monetary
    help='Campo G048 do CNAB' string='Valor da Multa'
  • instruction_move_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • interest_value Monetary
    help='Campo G047 do CNAB' string='Valor da Mora'
  • ml_maturity_date Date
    related=None
  • move_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • move_line_id Many2one
    ondelete=None
  • movement_type Selection
    default='0' help='Campo G060 do CNAB' selection=TIPO_MOVIMENTO string='Tipo de Movimento'
  • own_number Char
    string='Nosso Numero'
  • partner_pix_id Many2one → res.partner.pix
    comodel_name='res.partner.pix' string='Pix Key'
  • payment_method_code Char
    related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_domain Selection
    related='payment_mode_id.payment_mode_domain'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode' related='order_id.payment_mode_id'
  • percent_interest Float
    digits='Account' string='Percentual de Juros'
  • pix_transfer_type Selection
    compute='_compute_pix_transfer_type' help='Pix transfer type identification' selection=PIX_TRANSFER_TYPES
  • rebate_value Monetary
    help='Campo G045 do CNAB' string='Valor do Abatimento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (3)
  • default_get(self, fields_list)
    @api.model
  • draft2open_payment_line_check(self)
    Override to add brazilian validations
  • partner_id_change(self)
    @api.onchange('partner_id')

New fields (2)
  • allow_error Boolean
    string='Permitir linhas com erro na exportação, já incluidas em outras ordens'
  • allow_rejected Boolean
    string='Permitir linhas com retorno rejeitado'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • auto_create_payment_order Boolean
    help='Cria a ordem de pagamento automaticamente ao confirmar a fatura' string='Adicionar automaticamente ao validar a fatura'
  • bank_code_bc Char
    related='fixed_journal_id.bank_id.code_bc'
  • bank_id Many2one
    related='fixed_journal_id.bank_id'
  • cnab_config_id Many2one → l10n_br_cnab.config
    comodel_name='l10n_br_cnab.config' string='CNAB Config' tracking=True
  • cnab_processor Selection
    selection='_selection_cnab_processor'
  • payment_mode_domain Selection
    selection=PAYMENT_MODE_DOMAIN
Public methods (0)

No public methods.

New fields (10)
  • cnab_company_bank_code Char
    related='cnab_config_id.cnab_company_bank_code'
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_file Binary
    readonly=True string='CNAB File'
  • cnab_filename Char
    string='CNAB Filename'
  • convention_code Char
    related='cnab_config_id.convention_code'
  • file_number Integer
    string='Número sequencial do arquivo'
  • indicative_form_payment Selection
    default='01' help='Campo P014 do CNAB' selection=INDICATIVO_FORMA_PAGAMENTO string='Indicativo de Forma de Pagamento'
  • payment_method_code Char
    related='payment_method_id.code' store=True string='Payment Method Code'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (4)
  • action_done_cancel(self)
  • draft2open(self)
    Called when you click on the 'Confirm' button Set the 'date' on payment line depending on the 'date_prefered' setting of the payment.order Re-generate the account payments.
  • generate_payment_file(self)
    Esse modo deve ser usado somente para testes, com ele é possível passarmos por todos os fluxos de funcionamento das ordens de pagamento. Permitindo que através de testes via interface e testes automatizados sejam geradas ordens de pagamento de inclusão, alteração, baixa e etc.
  • get_file_name(self, cnab_type)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (43)
  • boleto_accept Selection
    default='N' selection=[('S', 'Sim'), ('N', 'Não')] string='Aceite' tracking=True
  • boleto_byte_idt Char
    help='Byte de identificação do cedente do bloqueto utilizado para compor o nosso número, usado pelos bancos Sicred/Unicred e Sicoob.' size=1 string='Byte IDT' tracking=True
  • boleto_days_protest Char
    help='Número de dias decorrentes após a data de vencimento para inicialização do processo de cobrança via protesto.' size=2 string='Número de Dias para Protesto' tracking=True
  • boleto_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='Boleto Discount Code' tracking=True
  • boleto_discount_perc Float
    digits='Account' string='Percentual de Desconto até a Data de Vencimento' tracking=True
  • boleto_fee_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de multa.' string='Fee Code' tracking=True
  • boleto_fee_perc Float
    digits='Account' string='Percentual de Multa' tracking=True
  • boleto_interest_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de mora de juros.' string='Código da Mora' tracking=True
  • boleto_interest_perc Float
    digits='Account' string='Percentual de Juros de Mora' tracking=True
  • boleto_modality Char
    size=2 string='Modalidade' tracking=True
  • boleto_post Char
    help='Código do Posto da Cooperativa de Crédito, usado pelos bancos Sicred/Unicred e Sicoob.' size=2 string='Posto da Cooperativa de Crédito' tracking=True
  • boleto_protest_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Código adotado pela FEBRABAN para identificar o tipo de prazo a ser considerado para o protesto.' string='Protest Code' tracking=True
  • boleto_species Selection
    default='01' selection=get_boleto_especies() string='Espécie do Título' tracking=True
  • boleto_variation Char
    size=2 string='Variação' tracking=True
  • boleto_wallet Char
    size=3 string='Carteira' tracking=True
  • cancel_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Cancel Discount.' string='Cancel Discount Instruction Code' tracking=True
  • cancel_rebate_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Cancel Rebate.' string='Cancel Rebate Instruction Code' tracking=True
  • change_discount_date_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Discount Date.' string='Change Discount Date Movement Instruction Code' tracking=True
  • change_maturity_date_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Maturity Date.' string='Change Maturity Date Movement Instruction Code' tracking=True
  • change_title_value_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Title Value.' string='Change Title Value Movement Instruction Code' tracking=True
  • cnab_company_bank_code Char
    help='Campo que tem o Código que identifica a Empresa no Banco e que\n tem na maioria dos casos o tamanho 20, devido a falta de padrão entre\n os Bancos e CNAB pode ter diferentes nomes Código da Empresa, Beneficiario,\n Convenio, Transmissão, campo G007 e etc porém contém a mesma informação.' size=20 string='Código da Empresa no Banco' tracking=True
  • communication_2 Char
    string='Comunicação para o sacador avalista'
  • condition_issuing_paper Selection
    default='1' selection=[('1', 'Banco emite e Processa'), ('2', 'Cliente emite e banco processa')] string='Condição Emissão de Papeleta'
  • convention_code Char
    help="Código do Convênio, campo com tamanho 7 usado em alguns casos\n onde além do 'Código da Empresa tamanho 20' existe esse segundo campo,\n casos mapeados hoje são Banco do Brasil como Código do Convênio Líder\n e o Banco Santander como Código do Convênio.\n " size=7 string='Código do Convênio' tracking=True
  • discount_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Desconto' string='Conta Contabil de Desconto' tracking=True
  • generate_own_number Boolean
    default=True help='Dependendo da carteira, banco, etc. O nosso número pode ser gerado pelo banco.' string='Gerar nosso número?'
  • grant_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Grant Discount.' string='Grant Discount Instruction Code' tracking=True
  • grant_rebate_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Grant Rebate.' string='Grant Rebate Instruction Code' tracking=True
  • instructions Text
    string='Instruções de cobrança'
  • interest_fee_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Juros Mora' string='Conta Contabil de Juros Mora e Multa' tracking=True
  • invoice_print Boolean
    string='Gerar relatorio na conclusão da fatura?'
  • not_payment_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Não Pagamento/Inadimplência' string='Conta Contabil para Não Pagamento/Inadimplência' tracking=True
  • own_number_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' copy=False help='Para usar essa Sequencia é preciso definir o campo Tipo do Nosso Número como Sequencial Único por Carteira no cadastro da empresa' string='Sequência do Nosso Número' tracking=True
  • protest_title_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Protest Title.' string='Protest Title Instruction Code' tracking=True
  • rebate_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Abatimento' string='Conta Contabil de Abatimento' tracking=True
  • sending_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Sending Movement Instruction Code' string='Sending Movement Instruction Code' tracking=True
  • suspend_protest_keep_wallet_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Suspend Protest and Keep in Wallet.' string='Suspend Protest and Keep in Wallet Instruction Code' tracking=True
  • suspend_protest_write_off_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Suspend Protest and Write Off.' string='Suspend Protest and Write Off Instruction Code' tracking=True
  • tariff_charge_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para a Tarifa Bancaria' string='Conta Contabil Tarifa Bancaria' tracking=True
  • wallet_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='Boleto Wallet Code' tracking=True
  • write_off_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Write Off Movement Instruction Code' string='Write Off Movement Instruction Code' tracking=True
  • write_off_devolution_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB code used for devolution instruction.' string='Devolution Instruction Code' tracking=True
  • write_off_devolution_number_of_days Char
    help='Specifies the number of days allowed for devolution.' size=2 string='Number of Days for Devolution' tracking=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (5)
  • create_cnab_change_tittle_value(self)
    CNAB - Alteração do Valor do Título.
  • create_cnab_write_off(self, reason, payment_situation)
    CNAB - Instrução de Baixar de Título.
  • create_payment_outside_cnab(self, amount_payment)
  • remove_payment_line(self, reason, payment_situation)
    Remove a Linha de Pagamento :param reason: :param payment_situation: :return:
  • update_cnab_for_cancel_invoice(self)

New fields (6)
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_code_id' comodel_name='res.bank' relation='l10n_br_cnab_code_bank_rel' required=True string='Banks' tracking=True
  • code Char
    index=True required=True tracking=True
  • code_type Selection
    index=True required=True selection=[('instruction_move_code', 'Instruction Move Code'), ('return_move_code', 'Return Move Code'), ('wallet_code', 'Wallet Code'), ('discount_code', 'Discount Code'), ('protest_code', 'Protest Code'), ('fee_code', 'Fee Code'), ('interest_code', 'Interest Code'), ('boleto_species', 'Boleto Species'), ('boleto_accept', 'Boleto Accept'), ('doc_finality_code', 'DOC Finality Code'), ('ted_finality_code', 'TED Finality Code'), ('complementary_finality_code', 'Complementary Finality Code'), ('service_type', 'Service Type'), ('release_form', 'Release Form'), ('boleto_wallet', 'Boleto Wallet'), ('boleto_modality', 'Boleto Modality'), ('boleto_variation', 'Boleto Variation'), ('boleto_write_off_devolution', 'Boleto Write Off Devolution')] tracking=True
  • comment Text
  • name Char
    index=True required=True tracking=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_code_payment_method_rel' required=True string='Payment Methods' tracking=True
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (13)
  • bank_code_bc Char
    related='bank_id.code_bc'
  • bank_id Many2one → res.bank
    comodel_name='res.bank' tracking=True
  • cnab_processor Selection
    selection='_selection_cnab_processor'
  • cnab_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' copy=False string='Sequencia do Arquivo CNAB' tracking=True
  • comment Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> ondelete='restrict' required=True string='Company'
  • liq_return_move_code_ids Many2many → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='CNAB Liquidity Return Move Code' tracking=True
  • name Char
    index=True required=True tracking=True
  • payment_method_code Char
    related='payment_method_id.code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' tracking=True
  • payment_type Selection
    related='payment_method_id.payment_type'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    index=True tracking=True
  • name Char
    index=True tracking=True
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (4)
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • favored_warning Selection
    default=0 help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (0)

No public methods.

New fields (31)
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' string='CNAB Return Log'
  • company_title_identification Char
    required=False string='Identificação do Título da Empresa'
  • currency_type Char
    string='Tipo de Moeda'
  • discount_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Desconto'
  • due_date Date
    string='Data de Vencimento'
  • favored_bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • favored_id Many2one → res.partner
    comodel_name='res.partner' string='Favorecido'
  • interest_fee_value Float
    string='Juros de Mora/Multa'
  • invoice_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • iof_value Float
    string='Valor do IOF'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • lot_id Many2one → l10n_br_cnab.return.lot
    comodel_name='l10n_br_cnab.return.lot' ondelete='cascade' string='Lote'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' ondelete='restrict' string='Journal Item'
  • occurrence_date Date
    string='Data da Ocorrência'
  • occurrences Char
    string='Ocorrências'
  • other_credits Float
    string='Outros Créditos'
  • own_number Char
    string='Nosso Número'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Associado'
  • payment_line_ids Many2many → account.payment.line
    column1='cnab_log_event_payment_line_id' column2='payment_line_id' comodel_name='account.payment.line' relation='l10n_br_cnab_log_event_payment_lines_rel' string='Payment lines'
  • payment_value Float
    string='Valor do Pagamento'
  • real_payment_date Date
    string='Data do Crédito'
  • rebate_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Abatimento'
  • segment Char
    string='Segmento'
  • str_motiv_a Char
    args: 'Motivo da ocorrência 01'
  • str_motiv_b Char
    args: 'Motivo de ocorrência 02'
  • str_motiv_c Char
    args: 'Motivo de ocorrência 03'
  • str_motiv_d Char
    args: 'Motivo de ocorrência 04'
  • str_motiv_e Char
    args: 'Motivo de ocorrência 05'
  • tariff_charge Float
    string='Tarifa'
  • title_value Float
    string='Valor da Linha'
  • your_number Char
    string='Seu Número'
Public methods (0)

No public methods.

New fields (17)
  • amount_total_discount Float
    string='Valor Total de Descontos'
  • amount_total_interest_fee Float
    string='Valor Total de Juros Mora/Multa'
  • amount_total_rebate Float
    string='Valor Total de Abatimentos'
  • amount_total_received Float
    string='Valor Total Recebido'
  • amount_total_tariff_charge Float
    string='Valor Total de Tarifas'
  • amount_total_title Float
    string='Valor Total Títulos'
  • bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta cedente'
  • cnab_date_file Date
    string='CNAB Date File'
  • cnab_date_import Datetime
    string='CNAB Date Import'
  • event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='cnab_return_log_id' string='Eventos'
  • filename Char
    string='Nome do Arquivo'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • move_ids Many2many → account.move
    column1='l10n_br_cnab_return_log_id' column2='move_id' comodel_name='account.move' relation='l10n_br_cnab_return_log_move_rel' string='Journal Entries'
  • name Char
  • number_events Integer
    string='Número de Eventos'
  • number_lots Integer
    string='Número de Lotes'
  • sequential_file Char
    string='Sequencial do Arquivo'
Public methods (0)

No public methods.

New fields (9)
  • account_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • company_registration_number Char
    string='Número de Inscrição'
  • company_registration_type Char
    string='Tipo de Inscrição'
  • lot_event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='lot_id' string='Eventos'
  • message Char
    string='Mensagem'
  • operation_service Char
    string='Tipo de Operação'
  • register_qty Integer
    string='Quantidade de Registros'
  • service_type Char
    string='Tipo do Serviço'
  • total_value Float
    string='Valor Total'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • write(self, values)
    Overriden so we can change the currency_id of base.main_company during tests
REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/17.0/l10n_br_account_payment_order
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Weblate, OCA-git-bot, Magno Costa, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-payment:
    - account_due_list
    - account_due_list_payment_mode
OCA/bank-payment:
    - account_payment_order
    - account_payment_partner
    - account_payment_mode
OCA/l10n-brazil:
    - l10n_br_base
    - l10n_br_account_due_list
odoo/odoo:
    - base
    - base_setup
    - web
    - base_address_extended
    - contacts
    - mail
    - bus
    - web_tour
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
O módulo implementa a parte comum da infra-estrutura necessária para o uso do CNAB implementando:

- **Códigos CNAB** - códigos de Instrução, Retorno, Carteira e Desconto.

- **Configuração CNAB** - onde serão salvas as informações específicas de cada caso como Convênio, Código do Beneficiário, Modalidade, Percentual de Multa, códigos de Instrução do Movimento de Liquidação de Alteração de Vencimento e etc.

- **Modo de Pagamento** - localiza o módulo [account_payment_mode]( https://github.com/OCA/bank-payment/tree/16.0/account_payment_mode) para associar o **Diário Contábil** referente a **Conta Bancária** do CNAB e informar a **Configuração do CNAB** que será usada, assim ao informar o Modo de Pagamento em um Pedido de Venda, Compras ou Faturamento o programa identifica como sendo um caso CNAB.

- **Ordem de Pagamento** - localiza o módulo [account_payment_order](https://github.com/OCA/bank-payment/tree/16.0/account_payment_order) que usa a **Ordem de Pagamento**, débito ou crédito, para registrar as **Instruções de Movimento** e onde será criado o **Arquivo CNAB Remessa**.

- **Registro do LOG de Eventos** - ao importar um arquivo de retorno CNAB.

- **Grupos e Permissões de acesso** - CNAB Usuário e Gerente.

A implementação foi pensada para permitir que seja possível usar diferentes Bibliotecas para **Gerar os Boletos, Arquivo CNAB de Remessa e tratar o Arquivo de Retorno do CNAB** por isso é preciso instalar um segundo módulo que vai ter essa função, portanto a ideia é que nesse módulo deverá estar tudo que for comum para a implementação mas o CNAB não irá funcionar sem esse segundo módulo.

**IMPORTANTE:** Apesar de muitas Documentações do CNAB acabarem dizendo que usam o "Padrão FEBRABAN" na realidade e ao longo dos anos foi visto que existem muitas divergências entre os casos incluindo diferentes Códigos para a mesma função ou mesmo Termos e nomenclaturas que apesar de semelhantes podem acabar confundindo o usuário, por isso essa falta de padrão foi considerada na implementação e na arquitetura do módulo e também precisa ser considerada em manutenções, melhorias ou no uso de outras Bibliotecas, é preciso separar o que é realmente comum do que pode variar entre os Bancos e CNAB, nesse sentido foram incluídos nos Dados de Demonstração mais de um caso para ficar claro aos desenvolvedores essas particularidades e evitar uma arquitetura que desconsidere esse aspecto.

Code Analysis

Views touched (23)
XML IDNameModelTypeStatus
account_journal_form_view account.journal.form (in l10n_br_account_payment_order) account.journal xpath Inherits account.view_account_journal_form
account_move_line_cnab_change_form_view account.move.line.cnab.change.form (in l10n_br_account_payment_order) account.move.line.cnab.change form New
account_payment_line_create_form l10n_br_account_payment_boleto.res.company.form account.payment.line.create field Inherits account_payment_order.account_payment_line_create_form
cnab_account_payment_line_tree cnab.account.payment.line.tree account.payment.line field Inherits account_payment_order.account_payment_line_tree
cnab_return_log_search l10n_br_cnab.return.log.search l10n_br_cnab.return.log search New
cnab_view_move_line_form_inherit cnab.account.move.line.form.inherit account.move.line sheet Inherits account.view_move_line_form
cnab_view_move_line_tree_inherit cnab.account.move.line.tree.inherit account.move.line field Inherits account_due_list.view_payments_tree
l10n_br-view_account_payment_invoice_form l10n_br_account_payment_order.view.account.payment.invoice.form account.payment field Inherits account_payment.view_account_payment_form_inherit_payment
l10n_br_account_payment_mode_form payment.mode.l10n_br_payment.form account.payment.mode field Inherits account_payment_order.account_payment_mode_form
l10n_br_account_payment_order_form l10n_br_account.payment.order.form account.payment.order field Inherits account_payment_order.account_payment_order_form
l10n_br_account_payment_order_payment_line_form l10n_br_account_payment_order.payment.line.form account.payment.line field Inherits account_payment_order.account_payment_line_form
l10n_br_cnab_code_form_view l10n_br_cnab.code.form.view l10n_br_cnab.code form New
l10n_br_cnab_code_search_view l10n_br_cnab.code.search l10n_br_cnab.code search New
l10n_br_cnab_code_tree_view l10n_br_cnab.code.tree l10n_br_cnab.code tree New
l10n_br_cnab_config_form_view l10n_br_cnab.config.form.view l10n_br_cnab.config form New
l10n_br_cnab_config_search_view l10n_br_cnab.config.search l10n_br_cnab.config search New
l10n_br_cnab_config_tree_view l10n_br_cnab.config.tree l10n_br_cnab.config tree New
l10n_br_cnab_return_event_form_view l10n_br_cnab.return.event.form l10n_br_cnab.return.event form New
l10n_br_cnab_return_event_tree_view l10n_br_cnab.return.event.tree l10n_br_cnab.return.event tree New
l10n_br_cnab_return_log_form_view l10n_br_cnab.return.log.form.view l10n_br_cnab.return.log form New
l10n_br_cnab_return_log_tree_view l10n_br_cnab.return.log.tree l10n_br_cnab.return.log tree New
l10n_br_cnab_return_lot_form_view l10n_br_cnab.return.lot.form.view l10n_br_cnab.return.lot form New
view_move_cnab_form account.move.cnab.view account.move field Inherits account.view_move_form
Models touched (22)

New fields (1)
  • bank_code_bc Char
    related='bank_id.code_bc'
Public methods (0)

No public methods.

New fields (7)
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' readonly=True string='CNAB Return Log'
  • eval_payment_mode_instructions Text
    help='Instruções Ordem de Pagamento configuradas na Configuração do CNAB' related='cnab_config_id.instructions' string='Instruções de Cobrança do Modo de Pagamento'
  • file_boleto_pdf_id Many2one → ir.attachment
    comodel_name='ir.attachment' copy=False ondelete='restrict' string='Boleto PDF'
  • instructions Text
    help='Instruções Extras da Ordem de Pagamento' string='Instruções de cobrança'
  • is_cnab Boolean
    string='Is CNAB?'
  • payment_method_code Char
    related='payment_mode_id.payment_method_id.code'
Public methods (6)
  • button_cancel(self)
  • generate_boleto_pdf(self)
    Classe a ser herdada pelo modulo que implementa a biblioteca ou API, deve anexar o PDF com boletos
  • get_invoice_fiscal_number(self)
    Como neste modulo não temos o número do documento fiscal, testamos a presença desse campo e se o módulo fiscal não tiver instalado, retornamos o name do invoice/account.move do core.
  • load_cnab_info(self)
  • unlink(self)
  • view_boleto_pdf(self)

New fields (16)
  • boleto_discount_perc Float
    digits='Account' help='Percentual de Desconto até a Data de Vencimento' related='cnab_config_id.boleto_discount_perc' string='Desconto de pontualidade'
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_return_line_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='move_line_id' readonly=True string='Retornos CNAB'
  • cnab_state Selection
    copy=False selection=ESTADOS_CNAB string='Estados CNAB'
  • company_title_identification Char
    copy=False string='Identificação Titulo Empresa'
  • document_number Char
    copy=False string='Número documento'
  • instruction_move_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' copy=False help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • instructions Text
    copy=False readonly=True string='Instruções de cobrança'
  • journal_payment_mode_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_journal_payment_mode' copy=False store=True
  • last_change_reason Text
    copy=False readonly=True string='Justificativa'
  • own_number Char
    copy=False string='Nosso Numero'
  • own_number_without_zfill Char
    compute='_compute_own_number_without_zfill' copy=False store=True
  • payment_method_code Char
    related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_id Many2one
    string='Modo de Pagamento'
  • payment_situation Selection
    copy=False default='inicial' selection=SITUACAO_PAGAMENTO string='Situação do Pagamento'
Public methods (5)
  • create_payment_line_from_move_line(self, payment_order)
    Altera estado do cnab para adicionado a ordem :param payment_order: :return:
  • generate_boleto(self, validate=True)
  • get_balance(self)
    Return the balance of any set of move lines. Not to be confused with the 'balance' field on this model, which returns the account balance that the move line applies to.
  • reconcile(self)
  • write(self, values)
    Sobrescrita do método Write. Não deve ser possível voltar o cnab_state ou a situacao_pagamento para um estado anterior :param values: :return:

New fields (7)
  • account_move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' readonly=True string='Move Line'
  • change_type Selection
    selection=[('change_discount_date', 'Data de Desconto'), ('change_date_maturity', 'Vencimento'), ('not_payment', 'Baixa por Não Pagamento/Inadimplência'), ('protest_tittle', 'Protestar Titulo'), ('suspend_protest_keep_wallet', 'Sustar Protesto e Manter em Carteira'), ('grant_rebate', 'Conceder Abatimento'), ('cancel_rebate', 'Cancelar Abatimento'), ('grant_discount', 'Conceder Desconto'), ('cancel_discount', 'Cancelar Desconto')] string='Tipo Alteração'
  • date Date
  • discount_value Float
    string='Valor de Desconto'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode'
  • reason Text
    string='Justificativa'
  • rebate_value Float
    string='Valor de Abatimento'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • doit(self)

New fields (1)
  • already_send_cnab Boolean
    string='Already send CNAB'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • action_post(self)

New fields (28)
  • amount_interest Float
    compute='_compute_interest' digits='Account' string='Valor Juros'
  • barcode Char
    help='This field is used in the payment of supplier slips'
  • communication_type Selection
    ondelete={'cnab': 'set default'} selection_add=[('cnab', 'CNAB')]
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • digitable_line Char
    string='Linha Digitável'
  • discount_value Monetary
    help='Campo G046 do CNAB' string='Valor do Desconto'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • document_number Char
    string='Número documento'
  • favored_warning Selection
    default='0' help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • fee_value Monetary
    help='Campo G048 do CNAB' string='Valor da Multa'
  • instruction_move_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • interest_value Monetary
    help='Campo G047 do CNAB' string='Valor da Mora'
  • ml_maturity_date Date
    related=None
  • move_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • move_line_id Many2one
    ondelete=None
  • movement_type Selection
    default='0' help='Campo G060 do CNAB' selection=TIPO_MOVIMENTO string='Tipo de Movimento'
  • own_number Char
    string='Nosso Numero'
  • partner_pix_id Many2one → res.partner.pix
    comodel_name='res.partner.pix' string='Pix Key'
  • payment_method_code Char
    related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_domain Selection
    related='payment_mode_id.payment_mode_domain'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode' related='order_id.payment_mode_id'
  • percent_interest Float
    digits='Account' string='Percentual de Juros'
  • pix_transfer_type Selection
    compute='_compute_pix_transfer_type' help='Pix transfer type identification' selection=PIX_TRANSFER_TYPES
  • rebate_value Monetary
    help='Campo G045 do CNAB' string='Valor do Abatimento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (3)
  • default_get(self, fields_list)
    @api.model
  • draft2open_payment_line_check(self)
    Override to add brazilian validations
  • partner_id_change(self)
    @api.onchange('partner_id')

New fields (2)
  • allow_error Boolean
    string='Permitir linhas com erro na exportação, já incluidas em outras ordens'
  • allow_rejected Boolean
    string='Permitir linhas com retorno rejeitado'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • auto_create_payment_order Boolean
    help='Cria a ordem de pagamento automaticamente ao confirmar a fatura' string='Adicionar automaticamente ao validar a fatura'
  • bank_code_bc Char
    related='fixed_journal_id.bank_id.code_bc'
  • bank_id Many2one
    related='fixed_journal_id.bank_id'
  • cnab_config_id Many2one → l10n_br_cnab.config
    comodel_name='l10n_br_cnab.config' string='CNAB Config' tracking=True
  • cnab_processor Selection
    selection='_selection_cnab_processor'
  • payment_mode_domain Selection
    selection=PAYMENT_MODE_DOMAIN
Public methods (0)

No public methods.

New fields (10)
  • cnab_company_bank_code Char
    related='cnab_config_id.cnab_company_bank_code'
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_file Binary
    readonly=True string='CNAB File'
  • cnab_filename Char
    string='CNAB Filename'
  • convention_code Char
    related='cnab_config_id.convention_code'
  • file_number Integer
    string='Número sequencial do arquivo'
  • indicative_form_payment Selection
    default='01' help='Campo P014 do CNAB' selection=INDICATIVO_FORMA_PAGAMENTO string='Indicativo de Forma de Pagamento'
  • payment_method_code Char
    related='payment_method_id.code' store=True string='Payment Method Code'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (4)
  • action_done_cancel(self)
  • draft2open(self)
    Called when you click on the 'Confirm' button Set the 'date' on payment line depending on the 'date_prefered' setting of the payment.order Re-generate the account payments.
  • generate_payment_file(self)
    Esse modo deve ser usado somente para testes, com ele é possível passarmos por todos os fluxos de funcionamento das ordens de pagamento. Permitindo que através de testes via interface e testes automatizados sejam geradas ordens de pagamento de inclusão, alteração, baixa e etc.
  • get_file_name(self, cnab_type)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (43)
  • boleto_accept Selection
    default='N' selection=[('S', 'Sim'), ('N', 'Não')] string='Aceite' tracking=True
  • boleto_byte_idt Char
    help='Byte de identificação do cedente do bloqueto utilizado para compor o nosso número, usado pelos bancos Sicred/Unicred e Sicoob.' size=1 string='Byte IDT' tracking=True
  • boleto_days_protest Char
    help='Número de dias decorrentes após a data de vencimento para inicialização do processo de cobrança via protesto.' size=2 string='Número de Dias para Protesto' tracking=True
  • boleto_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='Boleto Discount Code' tracking=True
  • boleto_discount_perc Float
    digits='Account' string='Percentual de Desconto até a Data de Vencimento' tracking=True
  • boleto_fee_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de multa.' string='Fee Code' tracking=True
  • boleto_fee_perc Float
    digits='Account' string='Percentual de Multa' tracking=True
  • boleto_interest_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de mora de juros.' string='Código da Mora' tracking=True
  • boleto_interest_perc Float
    digits='Account' string='Percentual de Juros de Mora' tracking=True
  • boleto_modality Char
    size=2 string='Modalidade' tracking=True
  • boleto_post Char
    help='Código do Posto da Cooperativa de Crédito, usado pelos bancos Sicred/Unicred e Sicoob.' size=2 string='Posto da Cooperativa de Crédito' tracking=True
  • boleto_protest_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Código adotado pela FEBRABAN para identificar o tipo de prazo a ser considerado para o protesto.' string='Protest Code' tracking=True
  • boleto_species Selection
    default='01' selection=get_boleto_especies() string='Espécie do Título' tracking=True
  • boleto_variation Char
    size=2 string='Variação' tracking=True
  • boleto_wallet Char
    size=3 string='Carteira' tracking=True
  • cancel_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Cancel Discount.' string='Cancel Discount Instruction Code' tracking=True
  • cancel_rebate_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Cancel Rebate.' string='Cancel Rebate Instruction Code' tracking=True
  • change_discount_date_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Discount Date.' string='Change Discount Date Movement Instruction Code' tracking=True
  • change_maturity_date_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Maturity Date.' string='Change Maturity Date Movement Instruction Code' tracking=True
  • change_title_value_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Title Value.' string='Change Title Value Movement Instruction Code' tracking=True
  • cnab_company_bank_code Char
    help='Campo que tem o Código que identifica a Empresa no Banco e que\n tem na maioria dos casos o tamanho 20, devido a falta de padrão entre\n os Bancos e CNAB pode ter diferentes nomes Código da Empresa, Beneficiario,\n Convenio, Transmissão, campo G007 e etc porém contém a mesma informação.' size=20 string='Código da Empresa no Banco' tracking=True
  • communication_2 Char
    string='Comunicação para o sacador avalista'
  • condition_issuing_paper Selection
    default='1' selection=[('1', 'Banco emite e Processa'), ('2', 'Cliente emite e banco processa')] string='Condição Emissão de Papeleta'
  • convention_code Char
    help="Código do Convênio, campo com tamanho 7 usado em alguns casos\n onde além do 'Código da Empresa tamanho 20' existe esse segundo campo,\n casos mapeados hoje são Banco do Brasil como Código do Convênio Líder\n e o Banco Santander como Código do Convênio.\n " size=7 string='Código do Convênio' tracking=True
  • discount_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Desconto' string='Conta Contabil de Desconto' tracking=True
  • generate_own_number Boolean
    default=True help='Dependendo da carteira, banco, etc. O nosso número pode ser gerado pelo banco.' string='Gerar nosso número?'
  • grant_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Grant Discount.' string='Grant Discount Instruction Code' tracking=True
  • grant_rebate_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Grant Rebate.' string='Grant Rebate Instruction Code' tracking=True
  • instructions Text
    string='Instruções de cobrança'
  • interest_fee_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Juros Mora' string='Conta Contabil de Juros Mora e Multa' tracking=True
  • invoice_print Boolean
    string='Gerar relatorio na conclusão da fatura?'
  • not_payment_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Não Pagamento/Inadimplência' string='Conta Contabil para Não Pagamento/Inadimplência' tracking=True
  • own_number_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' copy=False help='Para usar essa Sequencia é preciso definir o campo Tipo do Nosso Número como Sequencial Único por Carteira no cadastro da empresa' string='Sequência do Nosso Número' tracking=True
  • protest_title_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Protest Title.' string='Protest Title Instruction Code' tracking=True
  • rebate_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Abatimento' string='Conta Contabil de Abatimento' tracking=True
  • sending_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Sending Movement Instruction Code' string='Sending Movement Instruction Code' tracking=True
  • suspend_protest_keep_wallet_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Suspend Protest and Keep in Wallet.' string='Suspend Protest and Keep in Wallet Instruction Code' tracking=True
  • suspend_protest_write_off_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Suspend Protest and Write Off.' string='Suspend Protest and Write Off Instruction Code' tracking=True
  • tariff_charge_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para a Tarifa Bancaria' string='Conta Contabil Tarifa Bancaria' tracking=True
  • wallet_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='Boleto Wallet Code' tracking=True
  • write_off_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Write Off Movement Instruction Code' string='Write Off Movement Instruction Code' tracking=True
  • write_off_devolution_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB code used for devolution instruction.' string='Devolution Instruction Code' tracking=True
  • write_off_devolution_number_of_days Char
    help='Specifies the number of days allowed for devolution.' size=2 string='Number of Days for Devolution' tracking=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (5)
  • create_cnab_change_tittle_value(self)
    CNAB - Alteração do Valor do Título.
  • create_cnab_write_off(self, reason, payment_situation)
    CNAB - Instrução de Baixar de Título.
  • create_payment_outside_cnab(self, amount_payment)
  • remove_payment_line(self, reason, payment_situation)
    Remove a Linha de Pagamento :param reason: :param payment_situation: :return:
  • update_cnab_for_cancel_invoice(self)

New fields (6)
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_code_id' comodel_name='res.bank' relation='l10n_br_cnab_code_bank_rel' required=True string='Banks' tracking=True
  • code Char
    index=True required=True tracking=True
  • code_type Selection
    index=True required=True selection=[('instruction_move_code', 'Instruction Move Code'), ('return_move_code', 'Return Move Code'), ('wallet_code', 'Wallet Code'), ('discount_code', 'Discount Code'), ('protest_code', 'Protest Code'), ('fee_code', 'Fee Code'), ('interest_code', 'Interest Code'), ('boleto_species', 'Boleto Species'), ('boleto_accept', 'Boleto Accept'), ('doc_finality_code', 'DOC Finality Code'), ('ted_finality_code', 'TED Finality Code'), ('complementary_finality_code', 'Complementary Finality Code'), ('service_type', 'Service Type'), ('release_form', 'Release Form'), ('boleto_wallet', 'Boleto Wallet'), ('boleto_modality', 'Boleto Modality'), ('boleto_variation', 'Boleto Variation'), ('boleto_write_off_devolution', 'Boleto Write Off Devolution')] tracking=True
  • comment Text
  • name Char
    index=True required=True tracking=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_code_payment_method_rel' required=True string='Payment Methods' tracking=True
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (13)
  • bank_code_bc Char
    related='bank_id.code_bc'
  • bank_id Many2one → res.bank
    comodel_name='res.bank' tracking=True
  • cnab_processor Selection
    selection='_selection_cnab_processor'
  • cnab_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' copy=False string='Sequencia do Arquivo CNAB' tracking=True
  • comment Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> ondelete='restrict' required=True string='Company'
  • liq_return_move_code_ids Many2many → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='CNAB Liquidity Return Move Code' tracking=True
  • name Char
    index=True required=True tracking=True
  • payment_method_code Char
    related='payment_method_id.code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' tracking=True
  • payment_type Selection
    related='payment_method_id.payment_type'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    index=True tracking=True
  • name Char
    index=True tracking=True
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (4)
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • favored_warning Selection
    default=0 help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (0)

No public methods.

New fields (31)
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' string='CNAB Return Log'
  • company_title_identification Char
    required=False string='Identificação do Título da Empresa'
  • currency_type Char
    string='Tipo de Moeda'
  • discount_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Desconto'
  • due_date Date
    string='Data de Vencimento'
  • favored_bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • favored_id Many2one → res.partner
    comodel_name='res.partner' string='Favorecido'
  • interest_fee_value Float
    string='Juros de Mora/Multa'
  • invoice_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • iof_value Float
    string='Valor do IOF'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • lot_id Many2one → l10n_br_cnab.return.lot
    comodel_name='l10n_br_cnab.return.lot' ondelete='cascade' string='Lote'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' ondelete='restrict' string='Journal Item'
  • occurrence_date Date
    string='Data da Ocorrência'
  • occurrences Char
    string='Ocorrências'
  • other_credits Float
    string='Outros Créditos'
  • own_number Char
    string='Nosso Número'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Associado'
  • payment_line_ids Many2many → account.payment.line
    column1='cnab_log_event_payment_line_id' column2='payment_line_id' comodel_name='account.payment.line' relation='l10n_br_cnab_log_event_payment_lines_rel' string='Payment lines'
  • payment_value Float
    string='Valor do Pagamento'
  • real_payment_date Date
    string='Data do Crédito'
  • rebate_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Abatimento'
  • segment Char
    string='Segmento'
  • str_motiv_a Char
    args: 'Motivo da ocorrência 01'
  • str_motiv_b Char
    args: 'Motivo de ocorrência 02'
  • str_motiv_c Char
    args: 'Motivo de ocorrência 03'
  • str_motiv_d Char
    args: 'Motivo de ocorrência 04'
  • str_motiv_e Char
    args: 'Motivo de ocorrência 05'
  • tariff_charge Float
    string='Tarifa'
  • title_value Float
    string='Valor da Linha'
  • your_number Char
    string='Seu Número'
Public methods (0)

No public methods.

New fields (17)
  • amount_total_discount Float
    string='Valor Total de Descontos'
  • amount_total_interest_fee Float
    string='Valor Total de Juros Mora/Multa'
  • amount_total_rebate Float
    string='Valor Total de Abatimentos'
  • amount_total_received Float
    string='Valor Total Recebido'
  • amount_total_tariff_charge Float
    string='Valor Total de Tarifas'
  • amount_total_title Float
    string='Valor Total Títulos'
  • bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta cedente'
  • cnab_date_file Date
    string='CNAB Date File'
  • cnab_date_import Datetime
    string='CNAB Date Import'
  • event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='cnab_return_log_id' string='Eventos'
  • filename Char
    string='Nome do Arquivo'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • move_ids Many2many → account.move
    column1='l10n_br_cnab_return_log_id' column2='move_id' comodel_name='account.move' relation='l10n_br_cnab_return_log_move_rel' string='Journal Entries'
  • name Char
  • number_events Integer
    string='Número de Eventos'
  • number_lots Integer
    string='Número de Lotes'
  • sequential_file Char
    string='Sequencial do Arquivo'
Public methods (0)

No public methods.

New fields (9)
  • account_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • company_registration_number Char
    string='Número de Inscrição'
  • company_registration_type Char
    string='Tipo de Inscrição'
  • lot_event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='lot_id' string='Eventos'
  • message Char
    string='Mensagem'
  • operation_service Char
    string='Tipo de Operação'
  • register_qty Integer
    string='Quantidade de Registros'
  • service_type Char
    string='Tipo do Serviço'
  • total_value Float
    string='Valor Total'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • write(self, values)
    Overriden so we can change the currency_id of base.main_company during tests
REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/16.0/l10n_br_account_payment_order
VERSION
VERSION 9.1.0
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Renato Lima, Weblate, OCA-git-bot, Magno Costa, oca-ci, Antonio Neto, Antônio Neto, Kaynnan Lemes, CristianoMafraJunior, Tiago Amaral
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-payment:
    - account_due_list
    - account_due_list_payment_mode
OCA/bank-payment:
    - account_payment_order
    - account_payment_partner
    - account_payment_mode
OCA/l10n-brazil:
    - l10n_br_base
    - l10n_br_account_due_list
odoo/odoo:
    - base
    - base_setup
    - web
    - base_address_extended
    - account
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
O módulo implementa a parte comum da infra-estrutura necessária para o uso do CNAB implementando:

- **Códigos CNAB** - códigos de Instrução, Retorno, Carteira e Desconto.

- **Configuração CNAB** - onde serão salvas as informações específicas de cada caso como Convênio, Código do Beneficiário, Modalidade, Percentual de Multa, códigos de Instrução do Movimento de Liquidação de Alteração de Vencimento e etc.

- **Modo de Pagamento** - localiza o módulo [account_payment_mode]( https://github.com/OCA/bank-payment/tree/16.0/account_payment_mode) para associar o **Diário Contábil** referente a **Conta Bancária** do CNAB e informar a **Configuração do CNAB** que será usada, assim ao informar o Modo de Pagamento em um Pedido de Venda, Compras ou Faturamento o programa identifica como sendo um caso CNAB.

- **Ordem de Pagamento** - localiza o módulo [account_payment_order](https://github.com/OCA/bank-payment/tree/16.0/account_payment_order) que usa a **Ordem de Pagamento**, débito ou crédito, para registrar as **Instruções de Movimento** e onde será criado o **Arquivo CNAB Remessa**.

- **Registro do LOG de Eventos** - ao importar um arquivo de retorno CNAB.

- **Grupos e Permissões de acesso** - CNAB Usuário e Gerente.

A implementação foi pensada para permitir que seja possível usar diferentes Bibliotecas para **Gerar os Boletos, Arquivo CNAB de Remessa e tratar o Arquivo de Retorno do CNAB** por isso é preciso instalar um segundo módulo que vai ter essa função, portanto a ideia é que nesse módulo deverá estar tudo que for comum para a implementação mas o CNAB não irá funcionar sem esse segundo módulo.

**IMPORTANTE:** Apesar de muitas Documentações do CNAB acabarem dizendo que usam o "Padrão FEBRABAN" na realidade e ao longo dos anos foi visto que existem muitas divergências entre os casos incluindo diferentes Códigos para a mesma função ou mesmo Termos e nomenclaturas que apesar de semelhantes podem acabar confundindo o usuário, por isso essa falta de padrão foi considerada na implementação e na arquitetura do módulo e também precisa ser considerada em manutenções, melhorias ou no uso de outras Bibliotecas, é preciso separar o que é realmente comum do que pode variar entre os Bancos e CNAB, nesse sentido foram incluídos nos Dados de Demonstração mais de um caso para ficar claro aos desenvolvedores essas particularidades e evitar uma arquitetura que desconsidere esse aspecto.

Code Analysis

Views touched (23)
XML IDNameModelTypeStatus
account_journal_form_view account.journal.form (in l10n_br_account_payment_order) account.journal xpath Inherits account.view_account_journal_form
account_move_line_cnab_change_form_view account.move.line.cnab.change.form (in l10n_br_account_payment_order) account.move.line.cnab.change form New
account_payment_line_create_form l10n_br_account_payment_boleto.res.company.form account.payment.line.create field Inherits account_payment_order.account_payment_line_create_form
cnab_account_payment_line_tree cnab.account.payment.line.tree account.payment.line field Inherits account_payment_order.account_payment_line_tree
cnab_return_log_search l10n_br_cnab.return.log.search l10n_br_cnab.return.log search New
cnab_view_move_line_form_inherit cnab.account.move.line.form.inherit account.move.line sheet Inherits account.view_move_line_form
cnab_view_move_line_tree_inherit cnab.account.move.line.tree.inherit account.move.line field Inherits account_due_list.view_payments_tree
l10n_br-view_account_payment_invoice_form l10n_br_account_payment_order.view.account.payment.invoice.form account.payment field Inherits account_payment.view_account_payment_form_inherit_payment
l10n_br_account_payment_mode_form payment.mode.l10n_br_payment.form account.payment.mode field Inherits account_payment_order.account_payment_mode_form
l10n_br_account_payment_order_form l10n_br_account.payment.order.form account.payment.order field Inherits account_payment_order.account_payment_order_form
l10n_br_account_payment_order_payment_line_form l10n_br_account_payment_order.payment.line.form account.payment.line field Inherits account_payment_order.account_payment_line_form
l10n_br_cnab_code_form_view l10n_br_cnab.code.form.view l10n_br_cnab.code form New
l10n_br_cnab_code_search_view l10n_br_cnab.code.search l10n_br_cnab.code search New
l10n_br_cnab_code_tree_view l10n_br_cnab.code.tree l10n_br_cnab.code tree New
l10n_br_cnab_config_form_view l10n_br_cnab.config.form.view l10n_br_cnab.config form New
l10n_br_cnab_config_search_view l10n_br_cnab.config.search l10n_br_cnab.config search New
l10n_br_cnab_config_tree_view l10n_br_cnab.config.tree l10n_br_cnab.config tree New
l10n_br_cnab_return_event_form_view l10n_br_cnab.return.event.form l10n_br_cnab.return.event form New
l10n_br_cnab_return_event_tree_view l10n_br_cnab.return.event.tree l10n_br_cnab.return.event tree New
l10n_br_cnab_return_log_form_view l10n_br_cnab.return.log.form.view l10n_br_cnab.return.log form New
l10n_br_cnab_return_log_tree_view l10n_br_cnab.return.log.tree l10n_br_cnab.return.log tree New
l10n_br_cnab_return_lot_form_view l10n_br_cnab.return.lot.form.view l10n_br_cnab.return.lot form New
view_move_cnab_form account.move.cnab.view account.move field Inherits account.view_move_form
Models touched (21)

New fields (1)
  • bank_code_bc Char
    related='bank_id.code_bc'
Public methods (0)

No public methods.

New fields (7)
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' readonly=True string='CNAB Return Log'
  • eval_payment_mode_instructions Text
    help='Instruções Ordem de Pagamento configuradas na Configuração do CNAB' related='cnab_config_id.instructions' string='Instruções de Cobrança do Modo de Pagamento'
  • file_boleto_pdf_id Many2one → ir.attachment
    comodel_name='ir.attachment' copy=False ondelete='restrict' string='Boleto PDF'
  • instructions Text
    help='Instruções Extras da Ordem de Pagamento' string='Instruções de cobrança'
  • is_cnab Boolean
    string='Is CNAB?'
  • payment_method_code Char
    related='payment_mode_id.payment_method_id.code'
Public methods (6)
  • button_cancel(self)
  • generate_boleto_pdf(self)
    Classe a ser herdada pelo modulo que implementa a biblioteca ou API, deve anexar o PDF com boletos
  • get_invoice_fiscal_number(self)
    Como neste modulo não temos o número do documento fiscal, testamos a presença desse campo e se o módulo fiscal não tiver instalado, retornamos o name do invoice/account.move do core.
  • load_cnab_info(self)
  • unlink(self)
  • view_boleto_pdf(self)

New fields (16)
  • boleto_discount_perc Float
    digits='Account' help='Percentual de Desconto até a Data de Vencimento' related='cnab_config_id.boleto_discount_perc' string='Desconto de pontualidade'
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_return_line_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='move_line_id' readonly=True string='Retornos CNAB'
  • cnab_state Selection
    copy=False selection=ESTADOS_CNAB string='Estados CNAB'
  • company_title_identification Char
    copy=False string='Identificação Titulo Empresa'
  • document_number Char
    copy=False string='Número documento'
  • instruction_move_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' copy=False help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • instructions Text
    copy=False readonly=True string='Instruções de cobrança'
  • journal_payment_mode_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_journal_payment_mode' copy=False store=True
  • last_change_reason Text
    copy=False readonly=True string='Justificativa'
  • own_number Char
    copy=False string='Nosso Numero'
  • own_number_without_zfill Char
    compute='_compute_own_number_without_zfill' copy=False store=True
  • payment_method_code Char
    related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_id Many2one
    string='Modo de Pagamento'
  • payment_situation Selection
    copy=False default='inicial' selection=SITUACAO_PAGAMENTO string='Situação do Pagamento'
Public methods (5)
  • create_payment_line_from_move_line(self, payment_order)
    Altera estado do cnab para adicionado a ordem :param payment_order: :return:
  • generate_boleto(self, validate=True)
  • get_balance(self)
    Return the balance of any set of move lines. Not to be confused with the 'balance' field on this model, which returns the account balance that the move line applies to.
  • reconcile(self)
  • write(self, values)
    Sobrescrita do método Write. Não deve ser possível voltar o cnab_state ou a situacao_pagamento para um estado anterior :param values: :return:

New fields (7)
  • account_move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' readonly=True string='Move Line'
  • change_type Selection
    selection=[('change_discount_date', 'Data de Desconto'), ('change_date_maturity', 'Vencimento'), ('not_payment', 'Baixa por Não Pagamento/Inadimplência'), ('protest_tittle', 'Protestar Titulo'), ('suspend_protest_keep_wallet', 'Sustar Protesto e Manter em Carteira'), ('grant_rebate', 'Conceder Abatimento'), ('cancel_rebate', 'Cancelar Abatimento'), ('grant_discount', 'Conceder Desconto'), ('cancel_discount', 'Cancelar Desconto')] string='Tipo Alteração'
  • date Date
  • discount_value Float
    string='Valor de Desconto'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode'
  • reason Text
    string='Justificativa'
  • rebate_value Float
    string='Valor de Abatimento'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • doit(self)

New fields (1)
  • already_send_cnab Boolean
    string='Already send CNAB'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • action_post(self)

New fields (28)
  • amount_interest Float
    compute='_compute_interest' digits='Account' string='Valor Juros'
  • barcode Char
    help='This field is used in the payment of supplier slips'
  • communication_type Selection
    ondelete={'cnab': 'set default'} selection_add=[('cnab', 'CNAB')]
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • digitable_line Char
    string='Linha Digitável'
  • discount_value Monetary
    help='Campo G046 do CNAB' string='Valor do Desconto'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • document_number Char
    string='Número documento'
  • favored_warning Selection
    default='0' help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • fee_value Monetary
    help='Campo G048 do CNAB' string='Valor da Multa'
  • instruction_move_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • interest_value Monetary
    help='Campo G047 do CNAB' string='Valor da Mora'
  • ml_maturity_date Date
    related=None
  • move_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • move_line_id Many2one
    ondelete=None
  • movement_type Selection
    default='0' help='Campo G060 do CNAB' selection=TIPO_MOVIMENTO string='Tipo de Movimento'
  • own_number Char
    string='Nosso Numero'
  • partner_pix_id Many2one → res.partner.pix
    comodel_name='res.partner.pix' string='Pix Key'
  • payment_method_code Char
    related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_domain Selection
    related='payment_mode_id.payment_mode_domain'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode' related='order_id.payment_mode_id'
  • percent_interest Float
    digits='Account' string='Percentual de Juros'
  • pix_transfer_type Selection
    compute='_compute_pix_transfer_type' help='Pix transfer type identification' selection=PIX_TRANSFER_TYPES
  • rebate_value Monetary
    help='Campo G045 do CNAB' string='Valor do Abatimento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (3)
  • default_get(self, fields_list)
    @api.model
  • draft2open_payment_line_check(self)
    Override to add brazilian validations
  • partner_id_change(self)
    @api.onchange('partner_id')

New fields (2)
  • allow_error Boolean
    string='Permitir linhas com erro na exportação, já incluidas em outras ordens'
  • allow_rejected Boolean
    string='Permitir linhas com retorno rejeitado'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • auto_create_payment_order Boolean
    help='Cria a ordem de pagamento automaticamente ao confirmar a fatura' string='Adicionar automaticamente ao validar a fatura'
  • bank_code_bc Char
    related='fixed_journal_id.bank_id.code_bc'
  • bank_id Many2one
    related='fixed_journal_id.bank_id'
  • cnab_config_id Many2one → l10n_br_cnab.config
    comodel_name='l10n_br_cnab.config' string='CNAB Config' tracking=True
  • cnab_processor Selection
    selection='_selection_cnab_processor'
  • payment_mode_domain Selection
    selection=PAYMENT_MODE_DOMAIN
Public methods (0)

No public methods.

New fields (10)
  • cnab_company_bank_code Char
    related='cnab_config_id.cnab_company_bank_code'
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_file Binary
    readonly=True string='CNAB File'
  • cnab_filename Char
    string='CNAB Filename'
  • convention_code Char
    related='cnab_config_id.convention_code'
  • file_number Integer
    string='Número sequencial do arquivo'
  • indicative_form_payment Selection
    default='01' help='Campo P014 do CNAB' selection=INDICATIVO_FORMA_PAGAMENTO string='Indicativo de Forma de Pagamento'
  • payment_method_code Char
    related='payment_method_id.code' store=True string='Payment Method Code'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (4)
  • action_done_cancel(self)
  • draft2open(self)
    Called when you click on the 'Confirm' button Set the 'date' on payment line depending on the 'date_prefered' setting of the payment.order Re-generate the account payments.
  • generate_payment_file(self)
    Esse modo deve ser usado somente para testes, com ele é possível passarmos por todos os fluxos de funcionamento das ordens de pagamento. Permitindo que através de testes via interface e testes automatizados sejam geradas ordens de pagamento de inclusão, alteração, baixa e etc.
  • get_file_name(self, cnab_type)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (43)
  • boleto_accept Selection
    default='N' selection=[('S', 'Sim'), ('N', 'Não')] string='Aceite' tracking=True
  • boleto_byte_idt Char
    help='Byte de identificação do cedente do bloqueto utilizado para compor o nosso número, usado pelos bancos Sicred/Unicred e Sicoob.' size=1 string='Byte IDT' tracking=True
  • boleto_days_protest Char
    help='Número de dias decorrentes após a data de vencimento para inicialização do processo de cobrança via protesto.' size=2 string='Número de Dias para Protesto' tracking=True
  • boleto_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='Boleto Discount Code' tracking=True
  • boleto_discount_perc Float
    digits='Account' string='Percentual de Desconto até a Data de Vencimento' tracking=True
  • boleto_fee_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de multa.' string='Fee Code' tracking=True
  • boleto_fee_perc Float
    digits='Account' string='Percentual de Multa' tracking=True
  • boleto_interest_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de mora de juros.' string='Código da Mora' tracking=True
  • boleto_interest_perc Float
    digits='Account' string='Percentual de Juros de Mora' tracking=True
  • boleto_modality Char
    size=2 string='Modalidade' tracking=True
  • boleto_post Char
    help='Código do Posto da Cooperativa de Crédito, usado pelos bancos Sicred/Unicred e Sicoob.' size=2 string='Posto da Cooperativa de Crédito' tracking=True
  • boleto_protest_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Código adotado pela FEBRABAN para identificar o tipo de prazo a ser considerado para o protesto.' string='Protest Code' tracking=True
  • boleto_species Selection
    default='01' selection=get_boleto_especies() string='Espécie do Título' tracking=True
  • boleto_variation Char
    size=2 string='Variação' tracking=True
  • boleto_wallet Char
    size=3 string='Carteira' tracking=True
  • cancel_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Cancel Discount.' string='Cancel Discount Instruction Code' tracking=True
  • cancel_rebate_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Cancel Rebate.' string='Cancel Rebate Instruction Code' tracking=True
  • change_discount_date_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Discount Date.' string='Change Discount Date Movement Instruction Code' tracking=True
  • change_maturity_date_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Maturity Date.' string='Change Maturity Date Movement Instruction Code' tracking=True
  • change_title_value_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Title Value.' string='Change Title Value Movement Instruction Code' tracking=True
  • cnab_company_bank_code Char
    help='Campo que tem o Código que identifica a Empresa no Banco e que\n tem na maioria dos casos o tamanho 20, devido a falta de padrão entre\n os Bancos e CNAB pode ter diferentes nomes Código da Empresa, Beneficiario,\n Convenio, Transmissão, campo G007 e etc porém contém a mesma informação.' size=20 string='Código da Empresa no Banco' tracking=True
  • communication_2 Char
    string='Comunicação para o sacador avalista'
  • condition_issuing_paper Selection
    default='1' selection=[('1', 'Banco emite e Processa'), ('2', 'Cliente emite e banco processa')] string='Condição Emissão de Papeleta'
  • convention_code Char
    help="Código do Convênio, campo com tamanho 7 usado em alguns casos\n onde além do 'Código da Empresa tamanho 20' existe esse segundo campo,\n casos mapeados hoje são Banco do Brasil como Código do Convênio Líder\n e o Banco Santander como Código do Convênio.\n " size=7 string='Código do Convênio' tracking=True
  • discount_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Desconto' string='Conta Contabil de Desconto' tracking=True
  • generate_own_number Boolean
    default=True help='Dependendo da carteira, banco, etc. O nosso número pode ser gerado pelo banco.' string='Gerar nosso número?'
  • grant_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Grant Discount.' string='Grant Discount Instruction Code' tracking=True
  • grant_rebate_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Grant Rebate.' string='Grant Rebate Instruction Code' tracking=True
  • instructions Text
    string='Instruções de cobrança'
  • interest_fee_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Juros Mora' string='Conta Contabil de Juros Mora e Multa' tracking=True
  • invoice_print Boolean
    string='Gerar relatorio na conclusão da fatura?'
  • not_payment_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Não Pagamento/Inadimplência' string='Conta Contabil para Não Pagamento/Inadimplência' tracking=True
  • own_number_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' copy=False help='Para usar essa Sequencia é preciso definir o campo Tipo do Nosso Número como Sequencial Único por Carteira no cadastro da empresa' string='Sequência do Nosso Número' tracking=True
  • protest_title_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Protest Title.' string='Protest Title Instruction Code' tracking=True
  • rebate_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Abatimento' string='Conta Contabil de Abatimento' tracking=True
  • sending_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Sending Movement Instruction Code' string='Sending Movement Instruction Code' tracking=True
  • suspend_protest_keep_wallet_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Suspend Protest and Keep in Wallet.' string='Suspend Protest and Keep in Wallet Instruction Code' tracking=True
  • suspend_protest_write_off_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Suspend Protest and Write Off.' string='Suspend Protest and Write Off Instruction Code' tracking=True
  • tariff_charge_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para a Tarifa Bancaria' string='Conta Contabil Tarifa Bancaria' tracking=True
  • wallet_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='Boleto Wallet Code' tracking=True
  • write_off_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Write Off Movement Instruction Code' string='Write Off Movement Instruction Code' tracking=True
  • write_off_devolution_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB code used for devolution instruction.' string='Devolution Instruction Code' tracking=True
  • write_off_devolution_number_of_days Char
    help='Specifies the number of days allowed for devolution.' size=2 string='Number of Days for Devolution' tracking=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (5)
  • create_cnab_change_tittle_value(self)
    CNAB - Alteração do Valor do Título.
  • create_cnab_write_off(self, reason, payment_situation)
    CNAB - Instrução de Baixar de Título.
  • create_payment_outside_cnab(self, amount_payment)
  • remove_payment_line(self, reason, payment_situation)
    Remove a Linha de Pagamento :param reason: :param payment_situation: :return:
  • update_cnab_for_cancel_invoice(self)

New fields (6)
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_code_id' comodel_name='res.bank' relation='l10n_br_cnab_code_bank_rel' required=True string='Banks' tracking=True
  • code Char
    index=True required=True tracking=True
  • code_type Selection
    index=True required=True selection=[('instruction_move_code', 'Instruction Move Code'), ('return_move_code', 'Return Move Code'), ('wallet_code', 'Wallet Code'), ('discount_code', 'Discount Code'), ('protest_code', 'Protest Code'), ('fee_code', 'Fee Code'), ('interest_code', 'Interest Code'), ('boleto_species', 'Boleto Species'), ('boleto_accept', 'Boleto Accept'), ('doc_finality_code', 'DOC Finality Code'), ('ted_finality_code', 'TED Finality Code'), ('complementary_finality_code', 'Complementary Finality Code'), ('service_type', 'Service Type'), ('release_form', 'Release Form'), ('boleto_wallet', 'Boleto Wallet'), ('boleto_modality', 'Boleto Modality'), ('boleto_variation', 'Boleto Variation'), ('boleto_write_off_devolution', 'Boleto Write Off Devolution')] tracking=True
  • comment Text
  • name Char
    index=True required=True tracking=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_code_payment_method_rel' required=True string='Payment Methods' tracking=True
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (13)
  • bank_code_bc Char
    related='bank_id.code_bc'
  • bank_id Many2one → res.bank
    comodel_name='res.bank' tracking=True
  • cnab_processor Selection
    selection='_selection_cnab_processor'
  • cnab_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' copy=False string='Sequencia do Arquivo CNAB' tracking=True
  • comment Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> ondelete='restrict' required=True string='Company'
  • liq_return_move_code_ids Many2many → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='CNAB Liquidity Return Move Code' tracking=True
  • name Char
    index=True required=True tracking=True
  • payment_method_code Char
    related='payment_method_id.code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' tracking=True
  • payment_type Selection
    related='payment_method_id.payment_type'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    index=True tracking=True
  • name Char
    index=True tracking=True
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (4)
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • favored_warning Selection
    default=0 help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (0)

No public methods.

New fields (31)
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' string='CNAB Return Log'
  • company_title_identification Char
    required=False string='Identificação do Título da Empresa'
  • currency_type Char
    string='Tipo de Moeda'
  • discount_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Desconto'
  • due_date Date
    string='Data de Vencimento'
  • favored_bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • favored_id Many2one → res.partner
    comodel_name='res.partner' string='Favorecido'
  • interest_fee_value Float
    string='Juros de Mora/Multa'
  • invoice_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • iof_value Float
    string='Valor do IOF'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • lot_id Many2one → l10n_br_cnab.return.lot
    comodel_name='l10n_br_cnab.return.lot' ondelete='cascade' string='Lote'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' ondelete='restrict' string='Journal Item'
  • occurrence_date Date
    string='Data da Ocorrência'
  • occurrences Char
    string='Ocorrências'
  • other_credits Float
    string='Outros Créditos'
  • own_number Char
    string='Nosso Número'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Associado'
  • payment_line_ids Many2many → account.payment.line
    column1='cnab_log_event_payment_line_id' column2='payment_line_id' comodel_name='account.payment.line' relation='l10n_br_cnab_log_event_payment_lines_rel' string='Payment lines'
  • payment_value Float
    string='Valor do Pagamento'
  • real_payment_date Date
    string='Data do Crédito'
  • rebate_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Abatimento'
  • segment Char
    string='Segmento'
  • str_motiv_a Char
    args: 'Motivo da ocorrência 01'
  • str_motiv_b Char
    args: 'Motivo de ocorrência 02'
  • str_motiv_c Char
    args: 'Motivo de ocorrência 03'
  • str_motiv_d Char
    args: 'Motivo de ocorrência 04'
  • str_motiv_e Char
    args: 'Motivo de ocorrência 05'
  • tariff_charge Float
    string='Tarifa'
  • title_value Float
    string='Valor da Linha'
  • your_number Char
    string='Seu Número'
Public methods (0)

No public methods.

New fields (17)
  • amount_total_discount Float
    string='Valor Total de Descontos'
  • amount_total_interest_fee Float
    string='Valor Total de Juros Mora/Multa'
  • amount_total_rebate Float
    string='Valor Total de Abatimentos'
  • amount_total_received Float
    string='Valor Total Recebido'
  • amount_total_tariff_charge Float
    string='Valor Total de Tarifas'
  • amount_total_title Float
    string='Valor Total Títulos'
  • bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta cedente'
  • cnab_date_file Date
    string='CNAB Date File'
  • cnab_date_import Datetime
    string='CNAB Date Import'
  • event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='cnab_return_log_id' string='Eventos'
  • filename Char
    string='Nome do Arquivo'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • move_ids Many2many → account.move
    column1='l10n_br_cnab_return_log_id' column2='move_id' comodel_name='account.move' relation='l10n_br_cnab_return_log_move_rel' string='Journal Entries'
  • name Char
  • number_events Integer
    string='Número de Eventos'
  • number_lots Integer
    string='Número de Lotes'
  • sequential_file Char
    string='Sequencial do Arquivo'
Public methods (0)

No public methods.

New fields (9)
  • account_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • company_registration_number Char
    string='Número de Inscrição'
  • company_registration_type Char
    string='Tipo de Inscrição'
  • lot_event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='lot_id' string='Eventos'
  • message Char
    string='Mensagem'
  • operation_service Char
    string='Tipo de Operação'
  • register_qty Integer
    string='Quantidade de Registros'
  • service_type Char
    string='Tipo do Serviço'
  • total_value Float
    string='Valor Total'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/15.0/l10n_br_account_payment_order
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Weblate, OCA-git-bot, oca-ci, Antônio Neto, CristianoMafraJunior, Tiago Amaral
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:31
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-payment:
    - account_due_list
    - account_due_list_payment_mode
OCA/bank-payment:
    - account_payment_order
    - account_payment_partner
    - account_payment_mode
OCA/l10n-brazil:
    - l10n_br_base
    - l10n_br_account_due_list
odoo/odoo:
    - base
    - base_setup
    - web
    - base_address_city
    - base_address_extended
    - account
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
lxml
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (26)
XML IDNameModelTypeStatus
account_journal_form_view account.journal.form (in l10n_br_account_payment_order) account.journal xpath Inherits account.view_account_journal_form
account_move_line_cnab_change_form_view account.move.line.cnab.change.form (in l10n_br_account_payment_order) account.move.line.cnab.change form New
account_payment_line_create_form l10n_br_account_payment_boleto.res.company.form account.payment.line.create field Inherits account_payment_order.account_payment_line_create_form
cnab_account_payment_line_tree cnab.account.payment.line.tree account.payment.line field Inherits account_payment_order.account_payment_line_tree
cnab_return_log_search l10n_br_cnab.return.log.search l10n_br_cnab.return.log search New
cnab_view_move_line_form_inherit cnab.account.move.line.form.inherit account.move.line sheet Inherits account.view_move_line_form
cnab_view_move_line_tree_inherit cnab.account.move.line.tree.inherit account.move.line field Inherits account_due_list.view_payments_tree
l10n_br-view_account_payment_invoice_form l10n_br_account_payment_order.view.account.payment.invoice.form account.payment field Inherits payment.view_account_payment_form_inherit_payment
l10n_br_account_payment_mode_form payment.mode.l10n_br_payment.form account.payment.mode field Inherits account_payment_order.account_payment_mode_form
l10n_br_account_payment_order_form l10n_br_account.payment.order.form account.payment.order field Inherits account_payment_order.account_payment_order_form
l10n_br_account_payment_order_payment_line_form l10n_br_account_payment_order.payment.line.form account.payment.line field Inherits account_payment_order.account_payment_line_form
l10n_br_cnab_boleto_wallet_code_form_view l10n_br_cnab.boleto.wallet.code.form.view l10n_br_cnab.boleto.wallet.code form New
l10n_br_cnab_boleto_wallet_code_search_view l10n_br_cnab.boleto.wallet.code.search l10n_br_cnab.boleto.wallet.code search New
l10n_br_cnab_boleto_wallet_code_tree_view l10n_br_cnab.boleto.wallet.code.tree l10n_br_cnab.boleto.wallet.code tree New
l10n_br_cnab_mov_instruction_code_form_view l10n_br_cnab.mov.instruction.code.form.view l10n_br_cnab.mov.instruction.code form New
l10n_br_cnab_mov_instruction_code_search_view l10n_br_cnab.mov.instruction.code.search l10n_br_cnab.mov.instruction.code search New
l10n_br_cnab_mov_instruction_code_tree_view l10n_br_cnab.mov.instruction.code.tree l10n_br_cnab.mov.instruction.code tree New
l10n_br_cnab_return_event_form_view l10n_br_cnab.return.event.form l10n_br_cnab.return.event form New
l10n_br_cnab_return_event_tree_view l10n_br_cnab.return.event.tree l10n_br_cnab.return.event tree New
l10n_br_cnab_return_log_form_view l10n_br_cnab.return.log.form.view l10n_br_cnab.return.log form New
l10n_br_cnab_return_log_tree_view l10n_br_cnab.return.log.tree l10n_br_cnab.return.log tree New
l10n_br_cnab_return_lot_form_view l10n_br_cnab.return.lot.form.view l10n_br_cnab.return.lot form New
l10n_br_cnab_return_move_code_form_view l10n_br_cnab.return.move.code.form.view l10n_br_cnab.return.move.code form New
l10n_br_cnab_return_move_code_search_view l10n_br_cnab.return.move.code.search l10n_br_cnab.return.move.code search New
l10n_br_cnab_return_move_code_tree_view l10n_br_cnab.return.move.code.tree l10n_br_cnab.return.move.code tree New
view_move_cnab_form account.move.cnab.view account.move field Inherits account.view_move_form
Models touched (21)

New fields (1)
  • bank_code_bc Char
    related='bank_id.code_bc'
Public methods (0)

No public methods.

New fields (6)
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' readonly=True string='CNAB Return Log'
  • eval_payment_mode_instructions Text
    help='Instruções Ordem de Pagamento configuradas no Modo de pagamento' readonly=True related='payment_mode_id.instructions' string='Instruções de Cobrança do Modo de Pagamento'
  • file_boleto_pdf_id Many2one → ir.attachment
    comodel_name='ir.attachment' copy=False ondelete='restrict' string='Boleto PDF'
  • instructions Text
    help='Instruções Extras da Ordem de Pagamento' string='Instruções de cobrança'
  • is_cnab Boolean
    string='Is CNAB?'
  • payment_method_code Char
    related='payment_mode_id.payment_method_id.code'
Public methods (7)
  • action_post(self)
  • button_cancel(self)
  • generate_boleto_pdf(self)
    Classe a ser herdada pelo modulo que implementa a biblioteca ou API, deve anexar o PDF com boletos
  • get_invoice_fiscal_number(self)
    Como neste modulo não temos o número do documento fiscal, testamos a presença desse campo e se o módulo fiscal não tiver instalado, retornamos o name do invoice/account.move do core.
  • load_cnab_info(self)
  • unlink(self)
  • view_boleto_pdf(self)

New fields (15)
  • boleto_discount_perc Float
    digits='Account' help='Percentual de Desconto até a Data de Vencimento' related='payment_mode_id.boleto_discount_perc' string='Desconto de pontualidade'
  • cnab_return_line_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='move_line_id' readonly=True string='Retornos CNAB'
  • cnab_state Selection
    copy=False selection=ESTADOS_CNAB string='Estados CNAB'
  • company_title_identification Char
    copy=False string='Identificação Titulo Empresa'
  • document_number Char
    copy=False string='Número documento'
  • instructions Text
    copy=False readonly=True string='Instruções de cobrança'
  • journal_payment_mode_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_journal_payment_mode' copy=False store=True
  • last_change_reason Text
    copy=False readonly=True string='Justificativa'
  • mov_instruction_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' copy=False help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • own_number Char
    copy=False string='Nosso Numero'
  • own_number_without_zfill Char
    compute='_compute_own_number_without_zfill' copy=False store=True
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_id Many2one
    string='Modo de Pagamento'
  • payment_situation Selection
    copy=False default='inicial' selection=SITUACAO_PAGAMENTO string='Situação do Pagamento'
Public methods (5)
  • create_payment_line_from_move_line(self, payment_order)
    Altera estado do cnab para adicionado a ordem :param payment_order: :return:
  • generate_boleto(self, validate=True)
  • get_balance(self)
    Return the balance of any set of move lines. Not to be confused with the 'balance' field on this model, which returns the account balance that the move line applies to.
  • reconcile(self)
  • write(self, values)
    Sobrescrita do método Write. Não deve ser possível voltar o cnab_state ou a situacao_pagamento para um estado anterior :param values: :return:

New fields (7)
  • account_move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' readonly=True string='Move Line'
  • change_type Selection
    selection=[('change_date_maturity', 'Vencimento'), ('not_payment', 'Baixa por Não Pagamento/Inadimplência'), ('protest_tittle', 'Protestar Titulo'), ('suspend_protest_keep_wallet', 'Sustar Protesto e Manter em Carteira'), ('grant_rebate', 'Conceder Abatimento'), ('cancel_rebate', 'Cancelar Abatimento'), ('grant_discount', 'Conceder Desconto'), ('cancel_discount', 'Cancelar Desconto')] string='Tipo Alteração'
  • date_maturity Date
  • discount_value Float
    string='Valor de Desconto'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode'
  • reason Text
    string='Justificativa'
  • rebate_value Float
    string='Valor de Abatimento'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • doit(self)

New fields (1)
  • already_send_cnab Boolean
    string='Already send CNAB'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • action_post(self)

New fields (28)
  • amount_interest Float
    compute='_compute_interest' digits='Account' string='Valor Juros'
  • barcode Char
    help='This field is used in the payment of supplier slips'
  • communication_type Selection
    ondelete={'cnab': 'set default'} selection_add=[('cnab', 'CNAB')]
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • digitable_line Char
    string='Linha Digitável'
  • discount_value Monetary
    help='Campo G046 do CNAB' string='Valor do Desconto'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • document_number Char
    string='Número documento'
  • favored_warning Selection
    default='0' help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • fee_value Monetary
    help='Campo G048 do CNAB' string='Valor da Multa'
  • interest_value Monetary
    help='Campo G047 do CNAB' string='Valor da Mora'
  • ml_maturity_date Date
    related=None
  • mov_instruction_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • move_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • move_line_id Many2one
    ondelete=None
  • movement_type Selection
    default='0' help='Campo G060 do CNAB' selection=TIPO_MOVIMENTO string='Tipo de Movimento'
  • own_number Char
    string='Nosso Numero'
  • partner_pix_id Many2one → res.partner.pix
    comodel_name='res.partner.pix' string='Pix Key'
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_domain Selection
    related='payment_mode_id.payment_mode_domain'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode' related='order_id.payment_mode_id'
  • percent_interest Float
    digits='Account' string='Percentual de Juros'
  • pix_transfer_type Selection
    compute='_compute_pix_transfer_type' help='Pix transfer type identification' selection=PIX_TRANSFER_TYPES
  • rebate_value Monetary
    help='Campo G045 do CNAB' string='Valor do Abatimento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (3)
  • default_get(self, fields_list)
    @api.model
  • draft2open_payment_line_check(self)
    Override to add brazilian validations
  • partner_id_change(self)
    @api.onchange('partner_id')

New fields (2)
  • allow_error Boolean
    string='Permitir linhas com erro na exportação, já incluidas em outras ordens'
  • allow_rejected Boolean
    string='Permitir linhas com retorno rejeitado'
Public methods (0)

No public methods.

New fields (9)
  • auto_create_payment_order Boolean
    help='Cria a ordem de pagamento automaticamente ao confirmar a fatura' string='Adicionar automaticamente ao validar a fatura'
  • bank_code_bc Char
    related='fixed_journal_id.bank_id.code_bc'
  • bank_id Many2one
    related='fixed_journal_id.bank_id'
  • cnab_liq_return_move_code_ids Many2many → l10n_br_cnab.return.move.code
    column1='cnab_liq_return_move_code_id' column2='payment_mode_id' comodel_name='l10n_br_cnab.return.move.code' relation='l10n_br_cnab_return_liquidity_move_code_rel' string='CNAB Liquidity Return Move Code' tracking=True
  • cnab_processor Selection
    selection='_selection_cnab_processor'
  • cnab_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' copy=False string='Sequencia do Arquivo CNAB' tracking=True
  • payment_mode_domain Selection
    selection=PAYMENT_MODE_DOMAIN
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (0)

No public methods.

New fields (9)
  • cnab_company_bank_code Char
    related='payment_mode_id.cnab_company_bank_code'
  • cnab_file Binary
    readonly=True string='CNAB File'
  • cnab_filename Char
    string='CNAB Filename'
  • convention_code Char
    related='payment_mode_id.convention_code'
  • file_number Integer
    string='Número sequencial do arquivo'
  • indicative_form_payment Selection
    default='01' help='Campo P014 do CNAB' selection=INDICATIVO_FORMA_PAGAMENTO string='Indicativo de Forma de Pagamento'
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (4)
  • action_done_cancel(self)
  • draft2open(self)
    Called when you click on the 'Confirm' button Set the 'date' on payment line depending on the 'date_prefered' setting of the payment.order Re-generate the account payments.
  • generate_payment_file(self)
    Esse modo deve ser usado somente para testes, com ele é possível passarmos por todos os fluxos de funcionamento das ordens de pagamento. Permitindo que através de testes via interface e testes automatizados sejam geradas ordens de pagamento de inclusão, alteração, baixa e etc.
  • get_file_name(self, cnab_type)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (39)
  • boleto_accept Selection
    default='N' selection=[('S', 'Sim'), ('N', 'Não')] string='Aceite' tracking=True
  • boleto_byte_idt Char
    help='Byte de identificação do cedente do bloqueto utilizado para compor o nosso número, usado pelos bancos Sicred/Unicred e Sicoob.' size=1 string='Byte IDT' tracking=True
  • boleto_days_protest Char
    help='Número de dias decorrentes após a data de vencimento para inicialização do processo de cobrança via protesto.' size=2 string='Número de Dias para Protesto' tracking=True
  • boleto_discount_perc Float
    digits='Account' string='Percentual de Desconto até a Data de Vencimento' tracking=True
  • boleto_fee_code Char
    help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de multa.' size=1 string='Código da Multa' tracking=True
  • boleto_fee_perc Float
    digits='Account' string='Percentual de Multa' tracking=True
  • boleto_interest_code Char
    help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de mora de juros.' size=1 string='Código da Mora' tracking=True
  • boleto_interest_perc Float
    digits='Account' string='Percentual de Juros de Mora' tracking=True
  • boleto_modality Char
    size=2 string='Modalidade' tracking=True
  • boleto_post Char
    help='Código do Posto da Cooperativa de Crédito, usado pelos bancos Sicred/Unicred e Sicoob.' size=2 string='Posto da Cooperativa de Crédito' tracking=True
  • boleto_protest_code Char
    default='0' help='Código adotado pela FEBRABAN para identificar o tipo de prazo a ser considerado para o protesto.' string='Código de Protesto' tracking=True
  • boleto_species Selection
    default='01' selection=get_boleto_especies() string='Espécie do Título' tracking=True
  • boleto_variation Char
    size=2 string='Variação' tracking=True
  • boleto_wallet Char
    size=3 string='Carteira' tracking=True
  • boleto_wallet_code_id Many2one → l10n_br_cnab.boleto.wallet.code
    comodel_name='l10n_br_cnab.boleto.wallet.code' string='Boleto Wallet Code' tracking=True
  • cnab_code_cancel_discount_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Cancel Discount.' string='Cancel Discount Instruction Code' tracking=True
  • cnab_code_cancel_rebate_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Cancel Rebate.' string='Cancel Rebate Instruction Code' tracking=True
  • cnab_code_change_maturity_date_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Change Maturity Date.' string='Change Maturity Date Movement Instruction Code' tracking=True
  • cnab_code_change_title_value_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Change Title Value.' string='Change Title Value Movement Instruction Code' tracking=True
  • cnab_code_grant_discount_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Grant Discount.' string='Grant Discount Instruction Code' tracking=True
  • cnab_code_grant_rebate_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Grant Rebate.' string='Grant Rebate Instruction Code' tracking=True
  • cnab_code_protest_title_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Protest Tittle.' string='Protest Tittle Instruction Code' tracking=True
  • cnab_code_suspend_protest_keep_wallet_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Suspend Protest and Keep in Wallet.' string='Suspend Protest an Keep in Wallet Instruction Code' tracking=True
  • cnab_code_suspend_protest_write_off_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Suspend Protest and Writte Off.' string='Suspend Protest an Writte Off Instruction Code' tracking=True
  • cnab_company_bank_code Char
    help='Campo que tem o Código que identifica a Empresa no Banco e que\n tem na maioria dos casos o tamanho 20, devido a falta de padrão entre\n os Bancos e CNAB pode ter diferentes nomes Código da Empresa, Beneficiario,\n Convenio, Transmissão, campo G007 e etc porém contém a mesma informação.' size=20 string='Código da Empresa no Banco' tracking=True
  • cnab_sending_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Sending Movement Instruction Code' string='Sending Movement Instruction Code' tracking=True
  • cnab_write_off_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Write Off Movement Instruction Code' string='Write Off Movement Instruction Code' tracking=True
  • communication_2 Char
    string='Comunicação para o sacador avalista'
  • condition_issuing_paper Selection
    default='1' selection=[('1', 'Banco emite e Processa'), ('2', 'Cliente emite e banco processa')] string='Condição Emissão de Papeleta'
  • convention_code Char
    help="Código do Convênio, campo com tamanho 7 usado em alguns casos\n onde além do 'Código da Empresa tamanho 20' existe esse segundo campo,\n casos mapeados hoje são Banco do Brasil como Código do Convênio Líder\n e o Banco Santander como Código do Convênio.\n " size=7 string='Código do Convênio' tracking=True
  • discount_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Desconto' string='Conta Contabil de Desconto' tracking=True
  • generate_own_number Boolean
    default=True help='Dependendo da carteira, banco, etc. O nosso número pode ser gerado pelo banco.' string='Gerar nosso número?'
  • instructions Text
    string='Instruções de cobrança'
  • interest_fee_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Juros Mora' string='Conta Contabil de Juros Mora e Multa' tracking=True
  • invoice_print Boolean
    string='Gerar relatorio na conclusão da fatura?'
  • not_payment_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Não Pagamento/Inadimplência' string='Conta Contabil para Não Pagamento/Inadimplência' tracking=True
  • own_number_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' copy=False help='Para usar essa Sequencia é preciso definir o campo Tipo do Nosso Número como Sequencial Único por Carteira no cadastro da empresa' string='Sequência do Nosso Número' tracking=True
  • rebate_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Abatimento' string='Conta Contabil de Abatimanto' tracking=True
  • tariff_charge_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para a Tarifa Bancaria' string='Conta Contabil Tarifa Bancaria' tracking=True
Public methods (0)

No public methods.

New fields (5)
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' store=True
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_boleto_wallet_code_id' comodel_name='res.bank' relation='l10n_br_cnab_boleto_wallet_code_bank_rel' string='Banks' tracking=True
  • comment Text
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' compute='_compute_payment_method_id' store=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_boleto_wallet_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_boleto_wallet_code_payment_method_rel' string='Payment Methods' tracking=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (5)
  • create_cnab_change_tittle_value(self)
    CNAB - Alteração do Valor do Título.
  • create_cnab_write_off(self, reason, payment_situation)
    CNAB - Instrução de Baixar de Título.
  • create_payment_outside_cnab(self, amount_payment)
  • remove_payment_line(self, reason, payment_situation)
    Remove a Linha de Pagamento :param reason: :param payment_situation: :return:
  • update_cnab_for_cancel_invoice(self)

New fields (2)
  • code Char
    index=True tracking=True
  • name Char
    index=True tracking=True
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (5)
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' store=True
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_mov_instruction_code_id' comodel_name='res.bank' relation='l10n_br_cnab_mov_instruction_code_bank_rel' string='Banks' tracking=True
  • comment Text
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' compute='_compute_payment_method_id' store=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_mov_instruction_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_mov_instruction_code_payment_method_rel' string='Payment Methods' tracking=True
Public methods (1)
  • check_code(self)
    @api.constrains('code')

New fields (4)
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • favored_warning Selection
    default=0 help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (0)

No public methods.

New fields (31)
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' string='CNAB Return Log'
  • company_title_identification Char
    required=False string='Identificação do Título da Empresa'
  • currency_type Char
    string='Tipo de Moeda'
  • discount_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Desconto'
  • due_date Date
    string='Data de Vencimento'
  • favored_bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • favored_id Many2one → res.partner
    comodel_name='res.partner' string='Favorecido'
  • interest_fee_value Float
    string='Juros de Mora/Multa'
  • invoice_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • iof_value Float
    string='Valor do IOF'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • lot_id Many2one → l10n_br_cnab.return.lot
    comodel_name='l10n_br_cnab.return.lot' ondelete='cascade' string='Lote'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' ondelete='restrict' string='Journal Item'
  • occurrence_date Date
    string='Data da Ocorrência'
  • occurrences Char
    string='Ocorrências'
  • other_credits Float
    string='Outros Créditos'
  • own_number Char
    string='Nosso Número'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Associado'
  • payment_line_ids Many2many → account.payment.line
    column1='cnab_log_event_payment_line_id' column2='payment_line_id' comodel_name='account.payment.line' relation='l10n_br_cnab_log_event_payment_lines_rel' string='Payment lines'
  • payment_value Float
    string='Valor do Pagamento'
  • real_payment_date Date
    string='Data do Crédito'
  • rebate_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Abatimento'
  • segment Char
    string='Segmento'
  • str_motiv_a Char
    args: 'Motivo da ocorrência 01'
  • str_motiv_b Char
    args: 'Motivo de ocorrência 02'
  • str_motiv_c Char
    args: 'Motivo de ocorrência 03'
  • str_motiv_d Char
    args: 'Motivo de ocorrência 04'
  • str_motiv_e Char
    args: 'Motivo de ocorrência 05'
  • tariff_charge Float
    string='Tarifa'
  • title_value Float
    string='Valor da Linha'
  • your_number Char
    string='Seu Número'
Public methods (0)

No public methods.

New fields (17)
  • amount_total_discount Float
    string='Valor Total de Descontos'
  • amount_total_interest_fee Float
    string='Valor Total de Juros Mora/Multa'
  • amount_total_rebate Float
    string='Valor Total de Abatimentos'
  • amount_total_received Float
    string='Valor Total Recebido'
  • amount_total_tariff_charge Float
    string='Valor Total de Tarifas'
  • amount_total_title Float
    string='Valor Total Títulos'
  • bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta cedente'
  • cnab_date_file Date
    string='CNAB Date File'
  • cnab_date_import Datetime
    string='CNAB Date Import'
  • event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='cnab_return_log_id' string='Eventos'
  • filename Char
    string='Nome do Arquivo'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • move_ids Many2many → account.move
    column1='l10n_br_cnab_return_log_id' column2='move_id' comodel_name='account.move' relation='l10n_br_cnab_return_log_move_rel' string='Journal Entries'
  • name Char
  • number_events Integer
    string='Número de Eventos'
  • number_lots Integer
    string='Número de Lotes'
  • sequential_file Char
    string='Sequencial do Arquivo'
Public methods (0)

No public methods.

New fields (9)
  • account_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • company_registration_number Char
    string='Número de Inscrição'
  • company_registration_type Char
    string='Tipo de Inscrição'
  • lot_event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='lot_id' string='Eventos'
  • message Char
    string='Mensagem'
  • operation_service Char
    string='Tipo de Operação'
  • register_qty Integer
    string='Quantidade de Registros'
  • service_type Char
    string='Tipo do Serviço'
  • total_value Float
    string='Valor Total'
Public methods (0)

No public methods.

New fields (5)
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' store=True
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_return_move_code_id' comodel_name='res.bank' relation='l10n_br_cnab_return_move_code_bank_rel' string='Banks' tracking=True
  • comment Text
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' compute='_compute_payment_method_id' store=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_mov_instruction_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_return_move_code_payment_method_rel' string='Payment Methods' tracking=True
Public methods (1)
  • check_code(self)
    @api.constrains('code')
REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/14.0/l10n_br_account_payment_order
VERSION
VERSION 9.4.2
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, OCA Transbot, Luis Felipe Miléo, oca-travis, Weblate, OCA-git-bot, Magno Costa, oca-ci, Marcel Savegnago, Diego Paradeda, Neto, Antonio Neto, Antônio Neto, Kaynnan Lemes, Felipe, kaynnan, Felipe Motter
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-payment:
    - account_due_list
    - account_due_list_payment_mode
OCA/bank-payment:
    - account_payment_order
    - account_payment_partner
    - account_payment_mode
OCA/l10n-brazil:
    - l10n_br_base
    - l10n_br_account_due_list
odoo/odoo:
    - base
    - base_setup
    - web
    - base_address_city
    - base_address_extended
    - account
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
lxml
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (24)
XML IDNameModelTypeStatus
account_journal_form_view account.journal.form (in l10n_br_account_payment_order) account.journal xpath Inherits account.view_account_journal_form
account_move_line_cnab_change_form_view account.move.line.cnab.change.form (in l10n_br_account_payment_order) account.move.line.cnab.change form New
account_move_payment_mode_cnab_change_wizard_form account.move.payment.mode.cnab.change.form account.move.payment.mode.cnab.change form New
account_payment_line_create_form l10n_br_account_payment_boleto.res.company.form account.payment.line.create field Inherits account_payment_order.account_payment_line_create_form
cnab_account_payment_line_tree cnab.account.payment.line.tree account.payment.line field Inherits account_payment_order.account_payment_line_tree
cnab_return_log_search l10n_br_cnab.return.log.search l10n_br_cnab.return.log search New
cnab_view_move_line_form_inherit cnab.account.move.line.form.inherit account.move.line sheet Inherits account.view_move_line_form
cnab_view_move_line_tree_inherit cnab.account.move.line.tree.inherit account.move.line field Inherits account_due_list.view_payments_tree
l10n_br-view_account_payment_invoice_form l10n_br_account_payment_order.view.account.payment.invoice.form account.payment field Inherits payment.view_account_payment_form_inherit_payment
l10n_br_account_payment_mode_form payment.mode.l10n_br_payment.form account.payment.mode field Inherits account_payment_order.account_payment_mode_form
l10n_br_account_payment_order_form l10n_br_account.payment.order.form account.payment.order field Inherits account_payment_order.account_payment_order_form
l10n_br_account_payment_order_payment_line_form l10n_br_account_payment_order.payment.line.form account.payment.line field Inherits account_payment_order.account_payment_line_form
l10n_br_cnab_code_form_view l10n_br_cnab.code.form.view l10n_br_cnab.code form New
l10n_br_cnab_code_search_view l10n_br_cnab.code.search l10n_br_cnab.code search New
l10n_br_cnab_code_tree_view l10n_br_cnab.code.tree l10n_br_cnab.code tree New
l10n_br_cnab_config_form_view l10n_br_cnab.config.form.view l10n_br_cnab.config form New
l10n_br_cnab_config_search_view l10n_br_cnab.config.search l10n_br_cnab.config search New
l10n_br_cnab_config_tree_view l10n_br_cnab.config.tree l10n_br_cnab.config tree New
l10n_br_cnab_return_event_form_view l10n_br_cnab.return.event.form l10n_br_cnab.return.event form New
l10n_br_cnab_return_event_tree_view l10n_br_cnab.return.event.tree l10n_br_cnab.return.event tree New
l10n_br_cnab_return_log_form_view l10n_br_cnab.return.log.form.view l10n_br_cnab.return.log form New
l10n_br_cnab_return_log_tree_view l10n_br_cnab.return.log.tree l10n_br_cnab.return.log tree New
l10n_br_cnab_return_lot_form_view l10n_br_cnab.return.lot.form.view l10n_br_cnab.return.lot form New
view_move_cnab_form account.move.cnab.view account.move field Inherits account.view_move_form
Models touched (21)

New fields (1)
  • bank_code_bc Char
    related='bank_id.code_bc'
Public methods (0)

No public methods.

New fields (7)
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' readonly=True string='CNAB Return Log'
  • eval_payment_mode_instructions Text
    help='Instruções Ordem de Pagamento configuradas na Configuração do CNAB' readonly=True related='cnab_config_id.instructions' string='Instruções de Cobrança do Modo de Pagamento'
  • file_boleto_pdf_id Many2one → ir.attachment
    comodel_name='ir.attachment' copy=False ondelete='restrict' string='Boleto PDF'
  • instructions Text
    help='Instruções Extras da Ordem de Pagamento' string='Instruções de cobrança'
  • is_cnab Boolean
    string='Is CNAB?'
  • payment_method_code Char
    related='payment_mode_id.payment_method_id.code'
Public methods (6)
  • button_cancel(self)
  • generate_boleto_pdf(self)
    Classe a ser herdada pelo modulo que implementa a biblioteca ou API, deve anexar o PDF com boletos
  • get_invoice_fiscal_number(self)
    Como neste modulo não temos o número do documento fiscal, testamos a presença desse campo e se o módulo fiscal não tiver instalado, retornamos o name do invoice/account.move do core.
  • load_cnab_info(self)
  • unlink(self)
  • view_boleto_pdf(self)

New fields (16)
  • boleto_discount_perc Float
    digits='Account' help='Percentual de Desconto até a Data de Vencimento' related='cnab_config_id.boleto_discount_perc' string='Desconto de pontualidade'
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_return_line_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='move_line_id' readonly=True string='Retornos CNAB'
  • cnab_state Selection
    copy=False selection=ESTADOS_CNAB string='Estados CNAB'
  • company_title_identification Char
    copy=False string='Identificação Titulo Empresa'
  • document_number Char
    copy=False string='Número documento'
  • instruction_move_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' copy=False help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • instructions Text
    copy=False readonly=True string='Instruções de cobrança'
  • journal_payment_mode_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_journal_payment_mode' copy=False store=True
  • last_change_reason Text
    copy=False readonly=True string='Justificativa'
  • own_number Char
    copy=False string='Nosso Numero'
  • own_number_without_zfill Char
    compute='_compute_own_number_without_zfill' copy=False store=True
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_id Many2one
    string='Modo de Pagamento'
  • payment_situation Selection
    copy=False default='inicial' selection=SITUACAO_PAGAMENTO string='Situação do Pagamento'
Public methods (5)
  • create_payment_line_from_move_line(self, payment_order)
    Altera estado do cnab para adicionado a ordem :param payment_order: :return:
  • generate_boleto(self, validate=True)
  • get_balance(self)
    Return the balance of any set of move lines. Not to be confused with the 'balance' field on this model, which returns the account balance that the move line applies to.
  • reconcile(self)
  • write(self, values)
    Sobrescrita do método Write. Não deve ser possível voltar o cnab_state ou a situacao_pagamento para um estado anterior :param values: :return:

New fields (7)
  • account_move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' readonly=True string='Move Line'
  • change_type Selection
    selection=[('change_date_maturity', 'Vencimento'), ('not_payment', 'Baixa por Não Pagamento/Inadimplência'), ('protest_tittle', 'Protestar Titulo'), ('suspend_protest_keep_wallet', 'Sustar Protesto e Manter em Carteira'), ('grant_rebate', 'Conceder Abatimento'), ('cancel_rebate', 'Cancelar Abatimento'), ('grant_discount', 'Conceder Desconto'), ('cancel_discount', 'Cancelar Desconto')] string='Tipo Alteração'
  • date_maturity Date
  • discount_value Float
    string='Valor de Desconto'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode'
  • reason Text
    string='Justificativa'
  • rebate_value Float
    string='Valor de Abatimento'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • doit(self)

New fields (1)
  • payment_mode_id Many2one → account.payment.mode
    domain=<expr> required=True args: 'account.payment.mode'
Public methods (1)
  • set_payment_mode(self)

New fields (1)
  • already_send_cnab Boolean
    string='Already send CNAB'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • action_post(self)

New fields (28)
  • amount_interest Float
    compute='_compute_interest' digits='Account' string='Valor Juros'
  • barcode Char
    help='This field is used in the payment of supplier slips'
  • communication_type Selection
    ondelete={'cnab': 'set default'} selection_add=[('cnab', 'CNAB')]
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • digitable_line Char
    string='Linha Digitável'
  • discount_value Monetary
    help='Campo G046 do CNAB' string='Valor do Desconto'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • document_number Char
    string='Número documento'
  • favored_warning Selection
    default='0' help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • fee_value Monetary
    help='Campo G048 do CNAB' string='Valor da Multa'
  • instruction_move_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • interest_value Monetary
    help='Campo G047 do CNAB' string='Valor da Mora'
  • ml_maturity_date Date
    related=None
  • move_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • move_line_id Many2one
    ondelete=None
  • movement_type Selection
    default='0' help='Campo G060 do CNAB' selection=TIPO_MOVIMENTO string='Tipo de Movimento'
  • own_number Char
    string='Nosso Numero'
  • partner_pix_id Many2one → res.partner.pix
    comodel_name='res.partner.pix' string='Pix Key'
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_domain Selection
    related='payment_mode_id.payment_mode_domain'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode' related='order_id.payment_mode_id'
  • percent_interest Float
    digits='Account' string='Percentual de Juros'
  • pix_transfer_type Selection
    compute='_compute_pix_transfer_type' help='Pix transfer type identification' selection=PIX_TRANSFER_TYPES
  • rebate_value Monetary
    help='Campo G045 do CNAB' string='Valor do Abatimento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (3)
  • default_get(self, fields_list)
    @api.model
  • draft2open_payment_line_check(self)
    Override to add brazilian validations
  • partner_id_change(self)
    @api.onchange('partner_id')

New fields (2)
  • allow_error Boolean
    string='Permitir linhas com erro na exportação, já incluidas em outras ordens'
  • allow_rejected Boolean
    string='Permitir linhas com retorno rejeitado'
Public methods (0)

No public methods.

New fields (6)
  • auto_create_payment_order Boolean
    help='Cria a ordem de pagamento automaticamente ao confirmar a fatura' string='Adicionar automaticamente ao validar a fatura'
  • bank_code_bc Char
    related='fixed_journal_id.bank_id.code_bc'
  • bank_id Many2one
    related='fixed_journal_id.bank_id'
  • cnab_config_id Many2one → l10n_br_cnab.config
    comodel_name='l10n_br_cnab.config' string='CNAB Config' tracking=True
  • cnab_processor Selection
    selection='_selection_cnab_processor'
  • payment_mode_domain Selection
    selection=PAYMENT_MODE_DOMAIN
Public methods (0)

No public methods.

New fields (10)
  • cnab_company_bank_code Char
    related='cnab_config_id.cnab_company_bank_code'
  • cnab_config_id Many2one
    related='payment_mode_id.cnab_config_id'
  • cnab_file Binary
    readonly=True string='CNAB File'
  • cnab_filename Char
    string='CNAB Filename'
  • convention_code Char
    related='cnab_config_id.convention_code'
  • file_number Integer
    string='Número sequencial do arquivo'
  • indicative_form_payment Selection
    default='01' help='Campo P014 do CNAB' selection=INDICATIVO_FORMA_PAGAMENTO string='Indicativo de Forma de Pagamento'
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (5)
  • action_done_cancel(self)
  • draft2open(self)
    Called when you click on the 'Confirm' button Set the 'date' on payment line depending on the 'date_prefered' setting of the payment.order Re-generate the account payments.
  • generate_payment_file(self)
    Esse modo deve ser usado somente para testes, com ele é possível passarmos por todos os fluxos de funcionamento das ordens de pagamento. Permitindo que através de testes via interface e testes automatizados sejam geradas ordens de pagamento de inclusão, alteração, baixa e etc.
  • get_file_name(self, cnab_type)
  • unlink(self)

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)

New fields (42)
  • boleto_accept Selection
    default='N' selection=[('S', 'Sim'), ('N', 'Não')] string='Aceite' tracking=True
  • boleto_byte_idt Char
    help='Byte de identificação do cedente do bloqueto utilizado para compor o nosso número, usado pelos bancos Sicred/Unicred e Sicoob.' size=1 string='Byte IDT' tracking=True
  • boleto_days_protest Char
    help='Número de dias decorrentes após a data de vencimento para inicialização do processo de cobrança via protesto.' size=2 string='Número de Dias para Protesto' tracking=True
  • boleto_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='Boleto Discount Code' tracking=True
  • boleto_discount_perc Float
    digits='Account' string='Percentual de Desconto até a Data de Vencimento' tracking=True
  • boleto_fee_code Char
    help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de multa.' size=1 string='Código da Multa' tracking=True
  • boleto_fee_perc Float
    digits='Account' string='Percentual de Multa' tracking=True
  • boleto_interest_code Char
    help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de mora de juros.' size=1 string='Código da Mora' tracking=True
  • boleto_interest_perc Float
    digits='Account' string='Percentual de Juros de Mora' tracking=True
  • boleto_modality Char
    size=2 string='Modalidade' tracking=True
  • boleto_post Char
    help='Código do Posto da Cooperativa de Crédito, usado pelos bancos Sicred/Unicred e Sicoob.' size=2 string='Posto da Cooperativa de Crédito' tracking=True
  • boleto_protest_code Char
    default='0' help='Código adotado pela FEBRABAN para identificar o tipo de prazo a ser considerado para o protesto.' string='Código de Protesto' tracking=True
  • boleto_species Selection
    default='01' selection=get_boleto_especies() string='Espécie do Título' tracking=True
  • boleto_variation Char
    size=2 string='Variação' tracking=True
  • boleto_wallet Char
    size=3 string='Carteira' tracking=True
  • cancel_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Cancel Discount.' string='Cancel Discount Instruction Code' tracking=True
  • cancel_rebate_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Cancel Rebate.' string='Cancel Rebate Instruction Code' tracking=True
  • change_maturity_date_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Maturity Date.' string='Change Maturity Date Movement Instruction Code' tracking=True
  • change_title_value_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Change Title Value.' string='Change Title Value Movement Instruction Code' tracking=True
  • cnab_company_bank_code Char
    help='Campo que tem o Código que identifica a Empresa no Banco e que\n tem na maioria dos casos o tamanho 20, devido a falta de padrão entre\n os Bancos e CNAB pode ter diferentes nomes Código da Empresa, Beneficiario,\n Convenio, Transmissão, campo G007 e etc porém contém a mesma informação.' size=20 string='Código da Empresa no Banco' tracking=True
  • communication_2 Char
    string='Comunicação para o sacador avalista'
  • condition_issuing_paper Selection
    default='1' selection=[('1', 'Banco emite e Processa'), ('2', 'Cliente emite e banco processa')] string='Condição Emissão de Papeleta'
  • convention_code Char
    help="Código do Convênio, campo com tamanho 7 usado em alguns casos\n onde além do 'Código da Empresa tamanho 20' existe esse segundo campo,\n casos mapeados hoje são Banco do Brasil como Código do Convênio Líder\n e o Banco Santander como Código do Convênio.\n " size=7 string='Código do Convênio' tracking=True
  • discount_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Desconto' string='Conta Contabil de Desconto' tracking=True
  • generate_own_number Boolean
    default=True help='Dependendo da carteira, banco, etc. O nosso número pode ser gerado pelo banco.' string='Gerar nosso número?'
  • grant_discount_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Grant Discount.' string='Grant Discount Instruction Code' tracking=True
  • grant_rebate_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Grant Rebate.' string='Grant Rebate Instruction Code' tracking=True
  • instructions Text
    string='Instruções de cobrança'
  • interest_fee_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Juros Mora' string='Conta Contabil de Juros Mora e Multa' tracking=True
  • invoice_print Boolean
    string='Gerar relatorio na conclusão da fatura?'
  • not_payment_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Não Pagamento/Inadimplência' string='Conta Contabil para Não Pagamento/Inadimplência' tracking=True
  • own_number_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' copy=False help='Para usar essa Sequencia é preciso definir o campo Tipo do Nosso Número como Sequencial Único por Carteira no cadastro da empresa' string='Sequência do Nosso Número' tracking=True
  • protest_title_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Protest Tittle.' string='Protest Tittle Instruction Code' tracking=True
  • rebate_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Abatimento' string='Conta Contabil de Abatimanto' tracking=True
  • sending_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Sending Movement Instruction Code' string='Sending Movement Instruction Code' tracking=True
  • suspend_protest_keep_wallet_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Suspend Protest and Keep in Wallet.' string='Suspend Protest an Keep in Wallet Instruction Code' tracking=True
  • suspend_protest_write_off_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB Movement Instruction Code for Suspend Protest and Writte Off.' string='Suspend Protest an Writte Off Instruction Code' tracking=True
  • tariff_charge_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para a Tarifa Bancaria' string='Conta Contabil Tarifa Bancaria' tracking=True
  • wallet_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='Boleto Wallet Code' tracking=True
  • write_off_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='Write Off Movement Instruction Code' string='Write Off Movement Instruction Code' tracking=True
  • write_off_devolution_code_id Many2one → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' help='CNAB code used for devolution instruction.' string='Devolution Instruction Code' tracking=True
  • write_off_devolution_number_of_days Char
    help='Specifies the number of days allowed for devolution.' size=2 string='Number of Days for Devolution' tracking=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (5)
  • create_cnab_change_tittle_value(self)
    CNAB - Alteração do Valor do Título.
  • create_cnab_write_off(self, reason, payment_situation)
    CNAB - Instrução de Baixar de Título.
  • create_payment_outside_cnab(self, amount_payment)
  • remove_payment_line(self, reason, payment_situation)
    Remove a Linha de Pagamento :param reason: :param payment_situation: :return:
  • update_cnab_for_cancel_invoice(self)

New fields (8)
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' store=True
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_code_id' comodel_name='res.bank' relation='l10n_br_cnab_code_bank_rel' required=True string='Banks' tracking=True
  • code Char
    index=True required=True tracking=True
  • code_type Selection
    index=True required=True selection=[('instruction_move_code', 'Instruction Move Code'), ('return_move_code', 'Return Move Code'), ('wallet_code', 'Wallet Code'), ('discount_code', 'Discount Code'), ('protest_code', 'Protest Code'), ('fee_code', 'Fee Code'), ('interest_code', 'Interest Code'), ('boleto_species', 'Boleto Species'), ('boleto_accept', 'Boleto Accept'), ('doc_finality_code', 'DOC Finality Code'), ('ted_finality_code', 'TED Finality Code'), ('complementary_finality_code', 'Complementary Finality Code'), ('service_type', 'Service Type'), ('release_form', 'Release Form'), ('boleto_wallet', 'Boleto Wallet'), ('boleto_modality', 'Boleto Modality'), ('boleto_variation', 'Boleto Variation'), ('boleto_write_off_devolution', 'Boleto Write Off Devolution')] tracking=True
  • comment Text
  • name Char
    index=True required=True tracking=True
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' compute='_compute_payment_method_id' store=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_code_payment_method_rel' required=True string='Payment Methods' tracking=True
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (13)
  • bank_code_bc Char
    related='bank_id.code_bc'
  • bank_id Many2one → res.bank
    comodel_name='res.bank' tracking=True
  • cnab_processor Selection
    selection='_selection_cnab_processor'
  • cnab_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' copy=False string='Sequencia do Arquivo CNAB' tracking=True
  • comment Text
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> ondelete='restrict' required=True string='Company'
  • liq_return_move_code_ids Many2many → l10n_br_cnab.code
    comodel_name='l10n_br_cnab.code' string='CNAB Liquidity Return Move Code' tracking=True
  • name Char
    index=True required=True tracking=True
  • payment_method_code Char
    related='payment_method_id.code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' tracking=True
  • payment_type Selection
    related='payment_method_id.payment_type'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    index=True tracking=True
  • name Char
    index=True tracking=True
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (4)
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • favored_warning Selection
    default=0 help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (0)

No public methods.

New fields (31)
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' string='CNAB Return Log'
  • company_title_identification Char
    required=False string='Identificação do Título da Empresa'
  • currency_type Char
    string='Tipo de Moeda'
  • discount_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Desconto'
  • due_date Date
    string='Data de Vencimento'
  • favored_bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • favored_id Many2one → res.partner
    comodel_name='res.partner' string='Favorecido'
  • interest_fee_value Float
    string='Juros de Mora/Multa'
  • invoice_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • iof_value Float
    string='Valor do IOF'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • lot_id Many2one → l10n_br_cnab.return.lot
    comodel_name='l10n_br_cnab.return.lot' ondelete='cascade' string='Lote'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' ondelete='restrict' string='Journal Item'
  • occurrence_date Date
    string='Data da Ocorrência'
  • occurrences Char
    string='Ocorrências'
  • other_credits Float
    string='Outros Créditos'
  • own_number Char
    string='Nosso Número'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Associado'
  • payment_line_ids Many2many → account.payment.line
    column1='cnab_log_event_payment_line_id' column2='payment_line_id' comodel_name='account.payment.line' relation='l10n_br_cnab_log_event_payment_lines_rel' string='Payment lines'
  • payment_value Float
    string='Valor do Pagamento'
  • real_payment_date Date
    string='Data do Crédito'
  • rebate_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Abatimento'
  • segment Char
    string='Segmento'
  • str_motiv_a Char
    args: 'Motivo da ocorrência 01'
  • str_motiv_b Char
    args: 'Motivo de ocorrência 02'
  • str_motiv_c Char
    args: 'Motivo de ocorrência 03'
  • str_motiv_d Char
    args: 'Motivo de ocorrência 04'
  • str_motiv_e Char
    args: 'Motivo de ocorrência 05'
  • tariff_charge Float
    string='Tarifa'
  • title_value Float
    string='Valor da Linha'
  • your_number Char
    string='Seu Número'
Public methods (0)

No public methods.

New fields (17)
  • amount_total_discount Float
    string='Valor Total de Descontos'
  • amount_total_interest_fee Float
    string='Valor Total de Juros Mora/Multa'
  • amount_total_rebate Float
    string='Valor Total de Abatimentos'
  • amount_total_received Float
    string='Valor Total Recebido'
  • amount_total_tariff_charge Float
    string='Valor Total de Tarifas'
  • amount_total_title Float
    string='Valor Total Títulos'
  • bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta cedente'
  • cnab_date_file Date
    string='CNAB Date File'
  • cnab_date_import Datetime
    string='CNAB Date Import'
  • event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='cnab_return_log_id' string='Eventos'
  • filename Char
    string='Nome do Arquivo'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • move_ids Many2many → account.move
    column1='l10n_br_cnab_return_log_id' column2='move_id' comodel_name='account.move' relation='l10n_br_cnab_return_log_move_rel' string='Journal Entries'
  • name Char
  • number_events Integer
    string='Número de Eventos'
  • number_lots Integer
    string='Número de Lotes'
  • sequential_file Char
    string='Sequencial do Arquivo'
Public methods (0)

No public methods.

New fields (9)
  • account_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • company_registration_number Char
    string='Número de Inscrição'
  • company_registration_type Char
    string='Tipo de Inscrição'
  • lot_event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='lot_id' string='Eventos'
  • message Char
    string='Mensagem'
  • operation_service Char
    string='Tipo de Operação'
  • register_qty Integer
    string='Quantidade de Registros'
  • service_type Char
    string='Tipo do Serviço'
  • total_value Float
    string='Valor Total'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/13.0/l10n_br_account_payment_order
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSoca-travis, OCA-git-bot, Magno Costa, Antonio Neto
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-payment:
    - account_due_list
OCA/bank-payment:
    - account_payment_order
    - account_payment_partner
    - account_payment_mode
OCA/l10n-brazil:
    - l10n_br_base
    - l10n_br_account_due_list
odoo/odoo:
    - base
    - base_setup
    - web
    - base_address_city
    - base_address_extended
    - account
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
num2words
lxml
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (35)
XML IDNameModelTypeStatus
account_journal_bank_form_view account.journal.bank.form (in l10n_br_account_payment_order) account.journal xpath Inherits account.view_account_bank_journal_form
account_journal_form_view account.journal.form (in l10n_br_account_payment_order) account.journal xpath Inherits account.view_account_journal_form
account_move_line_cnab_change_form_view account.move.line.cnab.change.form (in l10n_br_account_payment_order) account.move.line.cnab.change form New
account_payment_line_create_form l10n_br_account_payment_boleto.res.company.form account.payment.line.create field Inherits account_payment_order.account_payment_line_create_form
bank_payment_line_form bank.payment.line.form bank.payment.line group Inherits account_payment_order.bank_payment_line_form
cnab_account_payment_line_tree cnab.account.payment.line.tree account.payment.line field Inherits account_payment_order.account_payment_line_tree
cnab_retorno_evento_form_view cnab.retorno.evento.form.view l10n_br.cnab.evento form New
cnab_retorno_form_view cnab.retorno.form.view l10n_br.cnab form New
cnab_retorno_lote_form_view cnab.retorno.lote.form.view l10n_br.cnab.lote form New
cnab_return_log_search l10n_br_cnab.return.log.search l10n_br_cnab.return.log search New
cnab_view_move_line_form_inherit cnab.account.move.line.form.inherit account.move.line sheet Inherits account.view_move_line_form
cnab_view_move_line_tree_inherit cnab.account.move.line.tree.inherit account.move.line field Inherits account_due_list.view_payments_tree
l10n_br-view_account_payment_invoice_form l10n_br_account_payment_order.view.account.payment.invoice.form account.payment field Inherits payment.view_account_payment_form_inherit_payment
l10n_br_account_payment_mode_form payment.mode.l10n_br_payment.form account.payment.mode field Inherits account_payment_order.account_payment_mode_form
l10n_br_account_payment_order_form l10n_br_account.payment.order.form account.payment.order field Inherits account_payment_order.account_payment_order_form
l10n_br_account_payment_order_payment_line_form l10n_br_account_payment_order.payment.line.form account.payment.line field Inherits account_payment_order.account_payment_line_form
l10n_br_cnab_mov_instruction_code_form_view l10n_br_cnab.mov.instruction.code.form.view l10n_br_cnab.mov.instruction.code form New
l10n_br_cnab_mov_instruction_code_search_view l10n_br_cnab.mov.instruction.code.search l10n_br_cnab.mov.instruction.code search New
l10n_br_cnab_mov_instruction_code_tree_view l10n_br_cnab.mov.instruction.code.tree l10n_br_cnab.mov.instruction.code tree New
l10n_br_cnab_return_event_tree_view l10n_br_cnab.return.event.tree l10n_br_cnab.return.event tree New
l10n_br_cnab_return_log_form_view l10n_br_cnab.return.log.form.view l10n_br_cnab.return.log form New
l10n_br_cnab_return_log_tree_view l10n_br_cnab.return.log.tree l10n_br_cnab.return.log tree New
l10n_br_cnab_return_lot_form_view l10n_br_cnab.return.lot.form.view l10n_br_cnab.return.lot form New
l10n_br_cnab_return_move_code_form_view l10n_br_cnab.return.move.code.form.view l10n_br_cnab.return.move.code form New
l10n_br_cnab_return_move_code_search_view l10n_br_cnab.return.move.code.search l10n_br_cnab.return.move.code search New
l10n_br_cnab_return_move_code_tree_view l10n_br_cnab.return.move.code.tree l10n_br_cnab.return.move.code tree New
l10n_br_payment_cnab_export_form payment.cnab.form payment.cnab form New
res_company_form l10n_br_account_payment_order.res.company.form res.company notebook Inherits base.view_company_form
view_account_invoice_filter_inherit view.account.invoice.filter.inherit account.move filter Inherits account.view_account_invoice_filter
view_cnab_evento_tree cnab.evento.tree l10n_br.cnab.evento tree New
view_cnab_lote_tree cnab.lote.tree l10n_br.cnab.lote tree New
view_cnab_retorno_tree cnab.retorno.tree l10n_br.cnab tree New
view_cobranca_line_search Linhas de Cobrança Select account.payment.line search New
view_cobranca_lines_tree Linhas de Cobrança account.payment.line tree New
view_move_cnab_form account.move.cnab.view account.move xpath Inherits account.view_move_form
Models touched (23)

New fields (1)
  • bank_code_bc Char
    related='bank_id.code_bc'
Public methods (0)

No public methods.

New fields (4)
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' inverse_name='move_id' readonly=True string='CNAB Return Log'
  • eval_payment_mode_instructions Text
    help='Instruções Ordem de Pagamento configuradas no Modo de pagamento' readonly=True related='payment_mode_id.instructions' string='Instruções de Cobrança do Modo de Pagamento'
  • instructions Text
    help='Instruções Extras da Ordem de Pagamento' string='Instruções de cobrança'
  • is_cnab Boolean
    string='Is CNAB?'
Public methods (4)
  • action_post(self)
  • button_cancel(self)
  • get_invoice_fiscal_number(self)
    Como neste modulo não temos o número do documento fiscal, testamos a presença desse campo e se o módulo fiscal não tiver instalado, retornamos o name do invoice/account.move do core.
  • unlink(self)

New fields (15)
  • cnab_return_line_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='move_line_id' readonly=True string='Retornos CNAB'
  • cnab_state Selection
    selection=ESTADOS_CNAB string='Estados CNAB'
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • document_number Char
    string='Número documento'
  • instructions Text
    readonly=True string='Instruções de cobrança'
  • journal_entry_ref Char
    compute='_compute_journal_entry_ref' store=True string='Journal Entry Ref'
  • journal_payment_mode_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_journal_payment_mode' copy=False store=True
  • last_change_reason Text
    readonly=True string='Justificativa'
  • mov_instruction_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • own_number Char
    string='Nosso Numero'
  • own_number_without_zfill Char
    compute='_compute_own_number_without_zfill' copy=False store=True
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_id Many2one
    string='Modo de Pagamento'
  • payment_situation Selection
    default='inicial' selection=SITUACAO_PAGAMENTO string='Situação do Pagamento'
Public methods (5)
  • create_payment_line_from_move_line(self, payment_order)
    Altera estado do cnab para adicionado a ordem :param payment_order: :return:
  • generate_boleto(self, validate=True)
  • get_balance(self)
    Return the balance of any set of move lines. Not to be confused with the 'balance' field on this model, which returns the account balance that the move line applies to.
  • reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False)
  • write(self, values)
    Sobrescrita do método Write. Não deve ser possível voltar o cnab_state ou a situacao_pagamento para um estado anterior :param values: :return:

New fields (7)
  • account_move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' readonly=True string='Move Line'
  • change_type Selection
    selection=[('change_date_maturity', 'Vencimento'), ('not_payment', 'Baixa por Não Pagamento/Inadimplência'), ('protest_tittle', 'Protestar Titulo'), ('suspend_protest_keep_wallet', 'Sustar Protesto e Manter em Carteira'), ('grant_rebate', 'Conceder Abatimento'), ('cancel_rebate', 'Cancelar Abatimento'), ('grant_discount', 'Conceder Desconto'), ('cancel_discount', 'Cancelar Desconto')] string='Tipo Alteração'
  • date_maturity Date
    string='Date Maturity'
  • discount_value Float
    string='Valor de Desconto'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode'
  • reason Text
    string='Justificativa'
  • rebate_value Float
    string='Valor de Abatimento'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • doit(self)

New fields (1)
  • already_send_cnab Boolean
    string='Already send CNAB'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • post(self)

New fields (23)
  • amount_interest Float
    compute='_compute_interest' digits='Account' string='Valor Juros'
  • communication_type Selection
    selection_add=[('cnab', 'CNAB')]
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • digitable_line Char
    string='Linha Digitável'
  • discount_value Monetary
    help='Campo G046 do CNAB' string='Valor do Desconto'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • document_number Char
    string='Número documento'
  • favored_warning Selection
    default='0' help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • fee_value Monetary
    help='Campo G048 do CNAB' string='Valor da Multa'
  • interest_value Monetary
    help='Campo G047 do CNAB' string='Valor da Mora'
  • ml_maturity_date Date
    related=None
  • mov_instruction_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • move_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • move_line_id Many2one
    ondelete=None
  • movement_type Selection
    default='0' help='Campo G060 do CNAB' selection=TIPO_MOVIMENTO string='Tipo de Movimento'
  • own_number Char
    string='Nosso Numero'
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode' tracking=True
  • percent_interest Float
    digits='Account' string='Percentual de Juros'
  • rebate_value Monetary
    help='Campo G045 do CNAB' string='Valor do Abatimento'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (1)
  • default_get(self, fields_list)
    @api.model

New fields (2)
  • allow_error Boolean
    string='Permitir linhas com erro na exportação, já incluidas em outras ordens'
  • allow_rejected Boolean
    string='Permitir linhas com retorno rejeitado'
Public methods (0)

No public methods.

New fields (8)
  • auto_create_payment_order Boolean
    help='Cria a ordem de pagamento automaticamente ao confirmar a fatura' string='Adicionar automaticamente ao validar a fatura'
  • bank_code_bc Char
    related='fixed_journal_id.bank_id.code_bc'
  • bank_id Many2one
    related='fixed_journal_id.bank_id'
  • cnab_liq_return_move_code_ids Many2many → l10n_br_cnab.return.move.code
    column1='cnab_liq_return_move_code_id' column2='payment_mode_id' comodel_name='l10n_br_cnab.return.move.code' relation='l10n_br_cnab_return_liquidity_move_code_rel' string='CNAB Liquidity Return Move Code' tracking=True
  • cnab_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' string='Sequencia do Arquivo CNAB' tracking=True
  • own_number_type Selection
    related='fixed_journal_id.company_id.own_number_type'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (1)
  • get_own_number_sequence(self, inv, numero_documento)

New fields (9)
  • bank_line_error_ids One2many → bank.payment.line
    comodel_name='bank.payment.line' domain=[('is_export_error', '=', True)] inverse_name='order_id' readonly=True string='Bank Payment Error Lines'
  • cnab_file Binary
    readonly=True string='CNAB File'
  • cnab_filename Char
    string='CNAB Filename'
  • code_convetion Char
    help='Campo G007 do CNAB' related='payment_mode_id.code_convetion'
  • file_number Integer
    string='Número sequencial do arquivo'
  • indicative_form_payment Selection
    default='01' help='Campo P014 do CNAB' selection=INDICATIVO_FORMA_PAGAMENTO string='Indicativo de Forma de Pagamento'
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (4)
  • action_done_cancel(self)
  • generate_payment_file(self)
    Esse modo deve ser usado somente para testes, com ele é possível passarmos por todos os fluxos de funcionamento das ordens de pagamento. Permitindo que através de testes via interface e testes automatizados sejam geradas ordens de pagamento de inclusão, alteração, baixa e etc.
  • open2generated(self)
  • unlink(self)

New fields (16)
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • discount_value Monetary
    help='Campo G046 do CNAB' string='Valor do Desconto'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • document_number Char
    string='Número documento'
  • event_id One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='bank_payment_line_id' readonly=True string='Eventos CNAB'
  • export_error_message Char
    string='Mensagem de erro'
  • favored_warning Selection
    default='0' help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • fee_value Monetary
    help='Campo G048 do CNAB' string='Valor da Multa'
  • interest_value Monetary
    help='Campo G047 do CNAB' string='Valor da Mora'
  • is_export_error Boolean
    string='Contem erro de exportação'
  • last_cnab_state Selection
    help='Último Estado do CNAB antes da confirmação de pagamento nas Ordens de Pagamento' selection=ESTADOS_CNAB string='Último Estado do CNAB'
  • mov_instruction_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • own_number Char
    string='Nosso Numero'
  • rebate_value Monetary
    help='Campo G045 do CNAB' string='Valor do Abatimento'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (3)
  • default_get(self, fields_list)
    @api.model
  • same_fields_payment_line_and_bank_payment_line(self)
    @api.model
    This list of fields is used both to compute the grouping hashcode and to copy the values from payment line to bank payment line The fields must have the same name on the 2 objects
  • unlink(self)

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)

New fields (13)
  • bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta cedente'
  • cnab_date Date
    default=datetime.now().date() required=True string='Data CNAB'
  • date_file Date
    string='Data Criação no Banco'
  • display_name Char
    compute='_compute_display_name' index=True store=True
  • filename Char
    string='Filename'
  • lot_id One2many → l10n_br.cnab.lote
    comodel_name='l10n_br.cnab.lote' inverse_name='cnab_id' string='Lotes'
  • name Char
    string='Name'
  • number_events Integer
    string='Número de Eventos'
  • number_lots Integer
    string='Número de Lotes'
  • reason_error Char
    string='Motivo do Erro'
  • return_file Binary
    string='Arquivo Retorno'
  • sequential_file Char
    string='Sequencial do Arquivo'
  • state Selection
    default='draft' selection=STATE_CNAB string='Estágio'
Public methods (6)
  • create(self, vals)
    @api.model
  • processar_arquivo_retorno(self)
  • processar_retorno_multi(self)
    @api.model
  • reprocessar_arquivo_retorno(self)
  • reprocessar_retorno_multi(self)
    @api.model
  • write(self, vals)

New fields (37)
  • boleto_accept Selection
    default='N' selection=[('S', 'Sim'), ('N', 'Não')] string='Aceite' tracking=True
  • boleto_byte_idt Char
    help='Byte de identificação do cedente do bloqueto utilizado para compor o nosso número, usado pelos bancos Sicred/Unicred e Sicoob.' size=1 string='Byte IDT' tracking=True
  • boleto_days_protest Char
    help='Número de dias decorrentes após a data de vencimento para inicialização do processo de cobrança via protesto.' size=2 string='Número de Dias para Protesto' tracking=True
  • boleto_discount_perc Float
    digits='Account' string='Percentual de Desconto até a Data de Vencimento' tracking=True
  • boleto_fee_code Char
    help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de multa.' size=1 string='Código da Multa' tracking=True
  • boleto_fee_perc Float
    digits='Account' string='Percentual de Multa' tracking=True
  • boleto_interest_code Char
    help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de mora de juros.' size=1 string='Código da Mora' tracking=True
  • boleto_interest_perc Float
    digits='Account' string='Percentual de Juros de Mora' tracking=True
  • boleto_modality Char
    size=2 string='Modalidade' tracking=True
  • boleto_post Char
    help='Código do Posto da Cooperativa de Crédito, usado pelos bancos Sicred/Unicred e Sicoob.' size=2 string='Posto da Cooperativa de Crédito' tracking=True
  • boleto_protest_code Char
    default='0' help='Código adotado pela FEBRABAN para identificar o tipo de prazo a ser considerado para o protesto.' string='Código de Protesto' tracking=True
  • boleto_species Selection
    default='01' selection=BOLETO_ESPECIE string='Espécie do Título' tracking=True
  • boleto_variation Char
    size=2 string='Variação' tracking=True
  • boleto_wallet Char
    size=3 string='Carteira' tracking=True
  • cnab_code_cancel_discount_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Cancel Discount.' string='Cancel Discount Instruction Code' tracking=True
  • cnab_code_cancel_rebate_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Cancel Rebate.' string='Cancel Rebate Instruction Code' tracking=True
  • cnab_code_change_maturity_date_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Change Maturity Date.' string='Change Maturity Date Movement Instruction Code' tracking=True
  • cnab_code_change_title_value_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Change Title Value.' string='Change Title Value Movement Instruction Code' tracking=True
  • cnab_code_grant_discount_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Grant Discount.' string='Grant Discount Instruction Code' tracking=True
  • cnab_code_grant_rebate_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Grant Rebate.' string='Grant Rebate Instruction Code' tracking=True
  • cnab_code_protest_title_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Protest Tittle.' string='Protest Tittle Instruction Code' tracking=True
  • cnab_code_suspend_protest_keep_wallet_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Suspend Protest and Keep in Wallet.' string='Suspend Protest an Keep in Wallet Instruction Code' tracking=True
  • cnab_code_suspend_protest_write_off_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Suspend Protest and Writte Off.' string='Suspend Protest an Writte Off Instruction Code' tracking=True
  • cnab_sending_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Sending Movement Instruction Code' string='Sending Movement Instruction Code' tracking=True
  • cnab_write_off_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Write Off Movement Instruction Code' string='Write Off Movement Instruction Code' tracking=True
  • code_convetion Char
    help='Campo G007 do CNAB' size=20 string='Código do Convênio no Banco' tracking=True
  • communication_2 Char
    string='Comunicação para o sacador avalista'
  • condition_issuing_paper Selection
    default='1' selection=[('1', 'Banco emite e Processa'), ('2', 'Cliente emite e banco processa')] string='Condição Emissão de Papeleta'
  • discount_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Desconto' string='Conta Contabil de Desconto' tracking=True
  • generate_own_number Boolean
    default=True help='Dependendo da carteira, banco, etc. O nosso número pode ser gerado pelo banco.' string='Gerar nosso número?'
  • instructions Text
    string='Instruções de cobrança'
  • interest_fee_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Juros Mora' string='Conta Contabil de Juros Mora e Multa' tracking=True
  • invoice_print Boolean
    string='Gerar relatorio na conclusão da fatura?'
  • not_payment_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Não Pagamento/Inadimplência' string='Conta Contabil para Não Pagamento/Inadimplência' tracking=True
  • own_number_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' help='Para usar essa Sequencia é preciso definir o campo Tipo do Nosso Número como Sequencial Único por Carteira no cadastro da empresa' string='Sequência do Nosso Número' tracking=True
  • rebate_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Abatimento' string='Conta Contabil de Abatimanto' tracking=True
  • tariff_charge_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para a Tarifa Bancaria' string='Conta Contabil Tarifa Bancaria' tracking=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (5)
  • create_cnab_change_tittle_value(self)
    CNAB - Alteração do Valor do Título.
  • create_cnab_write_off(self, reason, payment_situation)
    CNAB - Instrução de Baixar de Título.
  • create_payment_outside_cnab(self, amount_payment)
  • remove_payment_line(self, reason, payment_situation)
    Remove a Linha de Pagamento :param reason: :param payment_situation: :return:
  • update_cnab_for_cancel_invoice(self)

New fields (2)
  • code Char
    index=True string='Code' tracking=True
  • name Char
    index=True string='Name' tracking=True
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (5)
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' store=True
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_mov_instruction_code_id' comodel_name='res.bank' relation='l10n_br_cnab_mov_instruction_code_bank_rel' string='Banks' tracking=True
  • comment Text
    string='Comment'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' compute='_compute_payment_method_id' store=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_mov_instruction_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_mov_instruction_code_payment_method_rel' string='Payment Methods' tracking=True
Public methods (0)

No public methods.

New fields (4)
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • favored_warning Selection
    default=0 help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (0)

No public methods.

New fields (31)
  • bank_payment_line_id Many2one → bank.payment.line
    comodel_name='bank.payment.line' string='Bank Payment Line'
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' string='CNAB Return Log'
  • company_title_identification Char
    required=False string='Identificação do Título da Empresa'
  • currency_type Char
    string='Tipo de Moeda'
  • discount_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Desconto'
  • due_date Date
    string='Data de Vencimento'
  • favored_bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • favored_id Many2one → res.partner
    comodel_name='res.partner' string='Favorecido'
  • interest_fee_value Float
    string='Juros de Mora/Multa'
  • invoice_id Many2one → account.move
    comodel_name='account.move' string='Fatura'
  • iof_value Float
    string='Valor do IOF'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • lot_id Many2one → l10n_br_cnab.return.lot
    comodel_name='l10n_br_cnab.return.lot' ondelete='cascade' string='Lote'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' ondelete='restrict' string='Journal Item'
  • occurrence_date Date
    string='Data da Ocorrência'
  • occurrences Char
    string='Ocorrências'
  • other_credits Float
    string='Outros Créditos'
  • own_number Char
    string='Nosso Número'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Associado'
  • payment_value Float
    string='Valor do Pagamento'
  • real_payment_date Date
    string='Data do Crédito'
  • rebate_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Abatimento'
  • segment Char
    string='Segmento'
  • str_motiv_a Char
    args: 'Motivo da ocorrência 01'
  • str_motiv_b Char
    args: 'Motivo de ocorrência 02'
  • str_motiv_c Char
    args: 'Motivo de ocorrência 03'
  • str_motiv_d Char
    args: 'Motivo de ocorrência 04'
  • str_motiv_e Char
    args: 'Motivo de ocorrência 05'
  • tariff_charge Float
    string='Tarifa'
  • title_value Float
    string='Valor da Linha'
  • your_number Char
    string='Seu Número'
Public methods (0)

No public methods.

New fields (17)
  • amount_total_discount Float
    string='Valor Total de Descontos'
  • amount_total_interest_fee Float
    string='Valor Total de Juros Mora/Multa'
  • amount_total_rebate Float
    string='Valor Total de Abatimentos'
  • amount_total_received Float
    string='Valor Total Recebido'
  • amount_total_tariff_charge Float
    string='Valor Total de Tarifas'
  • amount_total_title Float
    string='Valor Total Títulos'
  • bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta cedente'
  • cnab_date_file Date
    string='CNAB Date File'
  • cnab_date_import Datetime
    string='CNAB Date Import'
  • event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='cnab_return_log_id' string='Eventos'
  • filename Char
    string='Nome do Arquivo'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • move_ids Many2many → account.move
    column1='l10n_br_cnab_return_log_id' column2='move_id' comodel_name='account.move' relation='l10n_br_cnab_return_log_move_rel' string='Journal Entries'
  • name Char
    string='Name'
  • number_events Integer
    string='Número de Eventos'
  • number_lots Integer
    string='Número de Lotes'
  • sequential_file Char
    string='Sequencial do Arquivo'
Public methods (0)

No public methods.

New fields (9)
  • account_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • company_registration_number Char
    string='Número de Inscrição'
  • company_registration_type Char
    string='Tipo de Inscrição'
  • lot_event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='lot_id' string='Eventos'
  • message Char
    string='Mensagem'
  • operation_service Char
    string='Tipo de Operação'
  • register_qty Integer
    string='Quantidade de Registros'
  • service_type Char
    string='Tipo do Serviço'
  • total_value Float
    string='Valor Total'
Public methods (0)

No public methods.

New fields (4)
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' store=True
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_return_move_code_id' comodel_name='res.bank' relation='l10n_br_cnab_return_move_code_bank_rel' string='Banks' tracking=True
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' compute='_compute_payment_method_id' store=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_mov_instruction_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_return_move_code_payment_method_rel' string='Payment Methods' tracking=True
Public methods (0)

No public methods.

New fields (2)
  • own_number_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' string='Sequência do Nosso Número'
  • own_number_type Selection
    default='1' selection=[('0', 'Sequêncial único por empresa'), ('1', 'Numero sequêncial da Fatura'), ('2', 'Sequêncial único por carteira')] string='Tipo de nosso número'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/12.0/l10n_br_account_payment_order
VERSION
VERSION 9.1.1
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Renato Lima, GitHub, Luis Felipe Mileo, OCA Transbot, oca-travis, OCA-git-bot, Magno Costa, Neto, netosjb, Daniel Sadamo
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-payment:
    - account_due_list
OCA/bank-payment:
    - account_payment_order
    - account_payment_partner
    - account_payment_mode
OCA/l10n-brazil:
    - l10n_br_base
    - l10n_br_account_due_list
odoo/odoo:
    - base
    - base_setup
    - web
    - base_address_city
    - base_address_extended
    - account
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - base_iban
    - account_cancel
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
num2words
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (35)
XML IDNameModelTypeStatus
account_journal_bank_form_view account.journal.bank.form (in l10n_br_account_payment_order) account.journal xpath Inherits account.view_account_bank_journal_form
account_journal_form_view account.journal.form (in l10n_br_account_payment_order) account.journal xpath Inherits account.view_account_journal_form
account_move_line_cnab_change_form_view account.move.line.cnab.change.form (in l10n_br_account_payment_order) account.move.line.cnab.change form New
account_payment_line_create_form l10n_br_account_payment_boleto.res.company.form account.payment.line.create field Inherits account_payment_order.account_payment_line_create_form
bank_payment_line_form bank.payment.line.form bank.payment.line group Inherits account_payment_order.bank_payment_line_form
cnab_account_payment_line_tree cnab.account.payment.line.tree account.payment.line field Inherits account_payment_order.account_payment_line_tree
cnab_retorno_evento_form_view cnab.retorno.evento.form.view l10n_br.cnab.evento form New
cnab_retorno_form_view cnab.retorno.form.view l10n_br.cnab form New
cnab_retorno_lote_form_view cnab.retorno.lote.form.view l10n_br.cnab.lote form New
cnab_return_log_search l10n_br_cnab.return.log.search l10n_br_cnab.return.log search New
cnab_view_move_line_form_inherit cnab.account.move.line.form.inherit account.move.line sheet Inherits account.view_move_line_form
cnab_view_move_line_tree_inherit cnab.account.move.line.tree.inherit account.move.line field Inherits account_due_list.view_payments_tree
l10n_br-view_account_payment_invoice_form l10n_br_account_payment_order.view.account.payment.invoice.form account.payment field Inherits payment.view_account_payment_invoice_form_inherit_payment
l10n_br_account_payment_mode_form payment.mode.l10n_br_payment.form account.payment.mode field Inherits account_payment_order.account_payment_mode_form
l10n_br_account_payment_order_form l10n_br_account.payment.order.form account.payment.order field Inherits account_payment_order.account_payment_order_form
l10n_br_account_payment_order_payment_line_form l10n_br_account_payment_order.payment.line.form account.payment.line field Inherits account_payment_order.account_payment_line_form
l10n_br_cnab_mov_instruction_code_form_view l10n_br_cnab.mov.instruction.code.form.view l10n_br_cnab.mov.instruction.code form New
l10n_br_cnab_mov_instruction_code_search_view l10n_br_cnab.mov.instruction.code.search l10n_br_cnab.mov.instruction.code search New
l10n_br_cnab_mov_instruction_code_tree_view l10n_br_cnab.mov.instruction.code.tree l10n_br_cnab.mov.instruction.code tree New
l10n_br_cnab_return_event_tree_view l10n_br_cnab.return.event.tree l10n_br_cnab.return.event tree New
l10n_br_cnab_return_log_form_view l10n_br_cnab.return.log.form.view l10n_br_cnab.return.log form New
l10n_br_cnab_return_log_tree_view l10n_br_cnab.return.log.tree l10n_br_cnab.return.log tree New
l10n_br_cnab_return_lot_form_view l10n_br_cnab.return.lot.form.view l10n_br_cnab.return.lot form New
l10n_br_cnab_return_move_code_form_view l10n_br_cnab.return.move.code.form.view l10n_br_cnab.return.move.code form New
l10n_br_cnab_return_move_code_search_view l10n_br_cnab.return.move.code.search l10n_br_cnab.return.move.code search New
l10n_br_cnab_return_move_code_tree_view l10n_br_cnab.return.move.code.tree l10n_br_cnab.return.move.code tree New
l10n_br_payment_cnab_export_form payment.cnab.form payment.cnab form New
res_company_form l10n_br_account_payment_order.res.company.form res.company notebook Inherits base.view_company_form
view_account_invoice_filter_inherit view.account.invoice.filter.inherit account.invoice filter Inherits account.view_account_invoice_filter
view_cnab_evento_tree cnab.evento.tree l10n_br.cnab.evento tree New
view_cnab_lote_tree cnab.lote.tree l10n_br.cnab.lote tree New
view_cnab_retorno_tree cnab.retorno.tree l10n_br.cnab tree New
view_cobranca_line_search Linhas de Cobrança Select account.payment.line search New
view_cobranca_lines_tree Linhas de Cobrança account.payment.line tree New
view_move_cnab_form account.move.cnab.view account.move xpath Inherits account.view_move_form
Models touched (24)

New fields (2)
  • eval_payment_mode_instructions Text
    help='Instruções Ordem de Pagamento configuradas no Modo de pagamento' readonly=True related='payment_mode_id.instructions' string='Instruções de Cobrança do Modo de Pagamento'
  • instructions Text
    help='Instruções Extras da Ordem de Pagamento' string='Instruções de cobrança'
Public methods (4)
  • action_invoice_cancel(self)
  • action_move_create(self)
  • get_invoice_fiscal_number(self)
    Como neste modulo nao temos o numero do documento fiscal, testamos a presencia desse campo e se o módulo fiscal não tiver instalado, retornamos o numero do invoice do core.
  • invoice_validate(self)

New fields (1)
  • bank_code_bc Char
    related='bank_id.code_bc'
Public methods (0)

No public methods.

New fields (2)
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' inverse_name='move_id' readonly=True string='CNAB Return Log'
  • is_cnab Boolean
    string='Is CNAB?'
Public methods (1)
  • unlink(self)

New fields (16)
  • cnab_return_line_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='move_line_id' readonly=True string='Retornos CNAB'
  • cnab_state Selection
    selection=ESTADOS_CNAB string='Estados CNAB'
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • document_number Char
    string='Número documento'
  • instructions Text
    readonly=True string='Instruções de cobrança'
  • journal_entry_ref Char
    compute='_compute_journal_entry_ref' store=True string='Journal Entry Ref'
  • journal_payment_mode_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_journal_payment_mode' copy=False store=True
  • last_change_reason Text
    readonly=True string='Justificativa'
  • mov_instruction_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • own_number Char
    string='Sequencial Nosso Numero'
  • own_number_boleto Char
    help='Conforme impresso no boleto, inclusive com o dígito verificador (DV)' string='Nosso Número Completo'
  • own_number_without_zfill Char
    compute='_compute_own_number_without_zfill' copy=False store=True
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_id Many2one
    string='Modo de Pagamento'
  • payment_situation Selection
    default='inicial' selection=SITUACAO_PAGAMENTO string='Situação do Pagamento'
Public methods (6)
  • create_payment_line_from_move_line(self, payment_order)
    Altera estado do cnab para adicionado a ordem :param payment_order: :return:
  • generate_boleto(self, validate=True)
  • generate_own_number_boleto(self)
  • get_balance(self)
    Return the balance of any set of move lines. Not to be confused with the 'balance' field on this model, which returns the account balance that the move line applies to.
  • reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False)
  • write(self, values)
    Sobrescrita do método Write. Não deve ser possível voltar o cnab_state ou a situacao_pagamento para um estado anterior :param values: :return:

New fields (7)
  • account_move_line_ids Many2many → account.move.line
    comodel_name='account.move.line' readonly=True string='Move Line'
  • change_type Selection
    selection=[('change_date_maturity', 'Vencimento'), ('not_payment', 'Baixa por Não Pagamento/Inadimplência'), ('protest_tittle', 'Protestar Titulo'), ('suspend_protest_keep_wallet', 'Sustar Protesto e Manter em Carteira'), ('grant_rebate', 'Conceder Abatimento'), ('cancel_rebate', 'Cancelar Abatimento'), ('grant_discount', 'Conceder Desconto'), ('cancel_discount', 'Cancelar Desconto')] string='Tipo Alteração'
  • date_maturity Date
    string='Date Maturity'
  • discount_value Float
    string='Valor de Desconto'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode'
  • reason Text
    string='Justificativa'
  • rebate_value Float
    string='Valor de Abatimento'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • doit(self)

New fields (1)
  • already_send_cnab Boolean
    string='Already send CNAB'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • post(self)

New fields (23)
  • amount_interest Float
    compute='_compute_interest' digits=dp.get_precision('Account') string='Valor Juros'
  • communication_type Selection
    selection_add=[('cnab', 'CNAB')]
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • digitable_line Char
    string='Linha Digitável'
  • discount_value Monetary
    help='Campo G046 do CNAB' string='Valor do Desconto'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • document_number Char
    string='Número documento'
  • favored_warning Selection
    default='0' help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • fee_value Monetary
    help='Campo G048 do CNAB' string='Valor da Multa'
  • interest_value Monetary
    help='Campo G047 do CNAB' string='Valor da Mora'
  • invoice_id Many2one → account.invoice
    comodel_name='account.invoice' string='Fatura'
  • ml_maturity_date Date
    related=None
  • mov_instruction_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • move_line_id Many2one
    ondelete=None
  • movement_type Selection
    default='0' help='Campo G060 do CNAB' selection=TIPO_MOVIMENTO string='Tipo de Movimento'
  • own_number Char
    string='Nosso Numero'
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' related='payment_mode_id.payment_method_id' string='Payment Method'
  • payment_mode_id Many2one → account.payment.mode
    comodel_name='account.payment.mode' track_visibility='onchange'
  • percent_interest Float
    digits=dp.get_precision('Account') string='Percentual de Juros'
  • rebate_value Monetary
    help='Campo G045 do CNAB' string='Valor do Abatimento'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (1)
  • default_get(self, fields_list)
    @api.model

New fields (2)
  • allow_error Boolean
    string='Permitir linhas com erro na exportação, já incluidas em outras ordens'
  • allow_rejected Boolean
    string='Permitir linhas com retorno rejeitado'
Public methods (0)

No public methods.

New fields (8)
  • auto_create_payment_order Boolean
    help='Cria a ordem de pagamento automaticamente ao confirmar a fatura' string='Adicionar automaticamente ao validar a fatura'
  • bank_code_bc Char
    related='fixed_journal_id.bank_id.code_bc'
  • bank_id Many2one
    related='fixed_journal_id.bank_id'
  • cnab_liq_return_move_code_ids Many2many → l10n_br_cnab.return.move.code
    column1='cnab_liq_return_move_code_id' column2='payment_mode_id' comodel_name='l10n_br_cnab.return.move.code' relation='l10n_br_cnab_return_liquidity_move_code_rel' string='CNAB Liquidity Return Move Code' track_visibility='always'
  • cnab_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' string='Sequencia do Arquivo CNAB' track_visibility='always'
  • own_number_type Selection
    related='fixed_journal_id.company_id.own_number_type'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (1)
  • get_own_number_sequence(self, inv, numero_documento)

New fields (10)
  • bank_line_error_ids One2many → bank.payment.line
    comodel_name='bank.payment.line' domain=[('is_export_error', '=', True)] inverse_name='order_id' readonly=True string='Bank Payment Error Lines'
  • cnab_file Binary
    readonly=True string='CNAB File'
  • cnab_filename Char
    string='CNAB Filename'
  • code_convenio_lider Char
    related='payment_mode_id.code_convenio_lider' string='Convênio Líder'
  • code_convetion Char
    help='Campo G007 do CNAB' related='payment_mode_id.code_convetion'
  • file_number Integer
    string='Número sequencial do arquivo'
  • indicative_form_payment Selection
    default='01' help='Campo P014 do CNAB' selection=INDICATIVO_FORMA_PAGAMENTO string='Indicativo de Forma de Pagamento'
  • payment_method_code Char
    readonly=True related='payment_method_id.code' store=True string='Payment Method Code'
  • release_form Selection
    help='Campo G029 do CNAB' selection=FORMA_LANCAMENTO string='Forma Lançamento'
  • service_type Selection
    default='30' help='Campo G025 do CNAB' selection=TIPO_SERVICO string='Tipo de Serviço'
Public methods (4)
  • action_done_cancel(self)
  • generate_payment_file(self)
    Esse modo deve ser usado somente para testes, com ele é possível passarmos por todos os fluxos de funcionamento das ordens de pagamento. Permitindo que através de testes via interface e testes automatizados sejam geradas ordens de pagamento de inclusão, alteração, baixa e etc.
  • open2generated(self)
  • unlink(self)

New fields (16)
  • company_title_identification Char
    string='Identificação Titulo Empresa'
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • discount_value Monetary
    help='Campo G046 do CNAB' string='Valor do Desconto'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • document_number Char
    string='Número documento'
  • event_id One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='bank_payment_line_id' readonly=True string='Eventos CNAB'
  • export_error_message Char
    string='Mensagem de erro'
  • favored_warning Selection
    default='0' help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • fee_value Monetary
    help='Campo G048 do CNAB' string='Valor da Multa'
  • interest_value Monetary
    help='Campo G047 do CNAB' string='Valor da Mora'
  • is_export_error Boolean
    string='Contem erro de exportação'
  • last_cnab_state Selection
    help='Último Estado do CNAB antes da confirmação de pagamento nas Ordens de Pagamento' selection=ESTADOS_CNAB string='Último Estado do CNAB'
  • mov_instruction_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Campo G061 do CNAB' string='Código da Instrução para Movimento'
  • own_number Char
    string='Nosso Numero'
  • rebate_value Monetary
    help='Campo G045 do CNAB' string='Valor do Abatimento'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (3)
  • default_get(self, fields_list)
    @api.model
  • same_fields_payment_line_and_bank_payment_line(self)
    @api.model
    This list of fields is used both to compute the grouping hashcode and to copy the values from payment line to bank payment line The fields must have the same name on the 2 objects
  • unlink(self)

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)

New fields (13)
  • bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta cedente'
  • cnab_date Date
    default=datetime.now().date() required=True string='Data CNAB'
  • date_file Date
    string='Data Criação no Banco'
  • display_name Char
    compute='_compute_display_name' index=True store=True
  • filename Char
    string='Filename'
  • lot_id One2many → l10n_br.cnab.lote
    comodel_name='l10n_br.cnab.lote' inverse_name='cnab_id' string='Lotes'
  • name Char
    string='Name'
  • number_events Integer
    string='Número de Eventos'
  • number_lots Integer
    string='Número de Lotes'
  • reason_error Char
    string='Motivo do Erro'
  • return_file Binary
    string='Arquivo Retorno'
  • sequential_file Char
    string='Sequencial do Arquivo'
  • state Selection
    default='draft' selection=STATE_CNAB string='Estágio'
Public methods (6)
  • create(self, vals)
    @api.model
  • processar_arquivo_retorno(self)
  • processar_retorno_multi(self)
    @api.model
  • reprocessar_arquivo_retorno(self)
  • reprocessar_retorno_multi(self)
    @api.model
  • write(self, vals)

New fields (40)
  • boleto_accept Selection
    default='N' selection=[('S', 'Sim'), ('N', 'Não')] string='Aceite' track_visibility='always'
  • boleto_byte_idt Char
    help='Byte de identificação do cedente do bloqueto utilizado para compor o nosso número, usado pelos bancos Sicred/Unicred e Sicoob.' size=1 string='Byte IDT' track_visibility='always'
  • boleto_days_protest Char
    help='Número de dias decorrentes após a data de vencimento para inicialização do processo de cobrança via protesto.' size=2 string='Número de Dias para Protesto' track_visibility='always'
  • boleto_discount_perc Float
    digits=dp.get_precision('Account') string='Percentual de Desconto até a Data de Vencimento' track_visibility='always'
  • boleto_fee_code Char
    help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de multa.' size=1 string='Código da Multa' track_visibility='always'
  • boleto_fee_perc Float
    digits=dp.get_precision('Account') string='Percentual de Multa' track_visibility='always'
  • boleto_interest_code Char
    help='Código adotado pela FEBRABAN para identificação do tipo de pagamento de mora de juros.' size=1 string='Código da Mora' track_visibility='always'
  • boleto_interest_perc Float
    digits=dp.get_precision('Account') string='Percentual de Juros de Mora' track_visibility='always'
  • boleto_modality Char
    size=2 string='Modalidade' track_visibility='always'
  • boleto_post Char
    help='Código do Posto da Cooperativa de Crédito, usado pelos bancos Sicred/Unicred e Sicoob.' size=2 string='Posto da Cooperativa de Crédito' track_visibility='always'
  • boleto_protest_code Char
    default='0' help='Código adotado pela FEBRABAN para identificar o tipo de prazo a ser considerado para o protesto.' string='Código de Protesto' track_visibility='always'
  • boleto_species Selection
    default='01' selection=BOLETO_ESPECIE string='Espécie do Título' track_visibility='always'
  • boleto_variation Char
    size=2 string='Variação' track_visibility='always'
  • boleto_wallet Char
    size=3 string='Carteira' track_visibility='always'
  • boleto_wallet2 Char
    help='Código da carteira para ser impresso no boleto, quando o mesmo for diferente do impresso na remessa.' size=3 string='Carteira Boleto' track_visibility='always'
  • cnab_code_cancel_discount_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Cancel Discount.' string='Cancel Discount Instruction Code' track_visibility='always'
  • cnab_code_cancel_rebate_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Cancel Rebate.' string='Cancel Rebate Instruction Code' track_visibility='always'
  • cnab_code_change_maturity_date_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Change Maturity Date.' string='Change Maturity Date Movement Instruction Code' track_visibility='always'
  • cnab_code_change_title_value_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Change Title Value.' string='Change Title Value Movement Instruction Code' track_visibility='always'
  • cnab_code_grant_discount_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Grant Discount.' string='Grant Discount Instruction Code' track_visibility='always'
  • cnab_code_grant_rebate_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Grant Rebate.' string='Grant Rebate Instruction Code' track_visibility='always'
  • cnab_code_protest_title_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Protest Tittle.' string='Protest Tittle Instruction Code' track_visibility='always'
  • cnab_code_suspend_protest_keep_wallet_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Suspend Protest and Keep in Wallet.' string='Suspend Protest an Keep in Wallet Instruction Code' track_visibility='always'
  • cnab_code_suspend_protest_write_off_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='CNAB Movement Instruction Code for Suspend Protest and Writte Off.' string='Suspend Protest an Writte Off Instruction Code' track_visibility='always'
  • cnab_sending_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Sending Movement Instruction Code' string='Sending Movement Instruction Code' track_visibility='always'
  • cnab_write_off_code_id Many2one → l10n_br_cnab.mov.instruction.code
    comodel_name='l10n_br_cnab.mov.instruction.code' help='Write Off Movement Instruction Code' string='Write Off Movement Instruction Code' track_visibility='always'
  • code_convenio_lider Char
    help='Código do Convênio Líder, exclusivo para o Banco do Brasil' size=7 string='Convênio Líder' track_visibility='always'
  • code_convetion Char
    help='Campo G007 do CNAB' size=20 string='Código do Convênio no Banco' track_visibility='always'
  • communication_2 Char
    string='Comunicação para o sacador avalista'
  • condition_issuing_paper Selection
    default='1' selection=[('1', 'Banco emite e Processa'), ('2', 'Cliente emite e banco processa')] string='Condição Emissão de Papeleta'
  • discount_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Desconto' string='Conta Contabil de Desconto' track_visibility='always'
  • generate_own_number Boolean
    default=True help='Dependendo da carteira, banco, etc. O nosso número pode ser gerado pelo banco.' string='Gerar nosso número?'
  • instructions Text
    string='Instruções de cobrança'
  • interest_fee_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Juros Mora' string='Conta Contabil de Juros Mora e Multa' track_visibility='always'
  • invoice_print Boolean
    string='Gerar relatorio na conclusão da fatura?'
  • not_payment_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Não Pagamento/Inadimplência' string='Conta Contabil para Não Pagamento/Inadimplência' track_visibility='always'
  • own_number_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' help='Para usar essa Sequencia é preciso definir o campo Tipo do Nosso Número como Sequencial Único por Carteira no cadastro da empresa' string='Sequência do Nosso Número' track_visibility='always'
  • rebate_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para Abatimento' string='Conta Contabil de Abatimanto' track_visibility='always'
  • tariff_charge_account_id Many2one → account.account
    comodel_name='account.account' help='Conta padrão para a Tarifa Bancaria' string='Conta Contabil Tarifa Bancaria' track_visibility='always'
  • transmission_code Char
    help='Informação cedida pelo banco que identifica o arquivo remessa do cliente' size=20 string='Código de Transmissão' track_visibility='always'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (5)
  • create_cnab_change_tittle_value(self)
    CNAB - Alteração do Valor do Título.
  • create_cnab_write_off(self, reason, payment_situation)
    CNAB - Instrução de Baixar de Título.
  • create_payment_outside_cnab(self, amount_payment)
  • remove_payment_line(self, reason, payment_situation)
    Remove a Linha de Pagamento :param reason: :param payment_situation: :return:
  • update_cnab_for_cancel_invoice(self)

New fields (2)
  • code Char
    index=True string='Code' track_visibility='always'
  • name Char
    index=True string='Name' track_visibility='always'
Public methods (2)
  • check_code(self)
    @api.constrains('code')
  • name_get(self)

New fields (5)
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' store=True
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_mov_instruction_code_id' comodel_name='res.bank' relation='l10n_br_cnab_mov_instruction_code_bank_rel' string='Banks' track_visibility='always'
  • comment Text
    string='Comment'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' compute='_compute_payment_method_id' store=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_mov_instruction_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_mov_instruction_code_payment_method_rel' string='Payment Methods' track_visibility='always'
Public methods (0)

No public methods.

New fields (4)
  • complementary_finality_code Char
    help='Campo P013 do CNAB' size=2 string='Código de finalidade complementar'
  • doc_finality_code Selection
    help='Campo P005 do CNAB' selection=COMPLEMENTO_TIPO_SERVICO string='Complemento do Tipo de Serviço'
  • favored_warning Selection
    default=0 help='Campo P006 do CNAB' selection=AVISO_FAVORECIDO string='Aviso ao Favorecido'
  • ted_finality_code Selection
    help='Campo P011 do CNAB' selection=CODIGO_FINALIDADE_TED string='Código Finalidade da TED'
Public methods (0)

No public methods.

New fields (31)
  • bank_payment_line_id Many2one → bank.payment.line
    comodel_name='bank.payment.line' string='Bank Payment Line'
  • cnab_return_log_id Many2one → l10n_br_cnab.return.log
    comodel_name='l10n_br_cnab.return.log' string='CNAB Return Log'
  • company_title_identification Char
    required=False string='Identificação do Título da Empresa'
  • currency_type Char
    string='Tipo de Moeda'
  • discount_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Desconto'
  • due_date Date
    string='Data de Vencimento'
  • favored_bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • favored_id Many2one → res.partner
    comodel_name='res.partner' string='Favorecido'
  • interest_fee_value Float
    string='Juros de Mora/Multa'
  • invoice_id Many2one → account.invoice
    comodel_name='account.invoice' string='Fatura'
  • iof_value Float
    string='Valor do IOF'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • lot_id Many2one → l10n_br_cnab.return.lot
    comodel_name='l10n_br_cnab.return.lot' ondelete='cascade' string='Lote'
  • move_line_id Many2one → account.move.line
    comodel_name='account.move.line' ondelete='restrict' string='Journal Item'
  • occurrence_date Date
    string='Data da Ocorrência'
  • occurrences Char
    string='Ocorrências'
  • other_credits Float
    string='Outros Créditos'
  • own_number Char
    string='Nosso Número'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Associado'
  • payment_value Float
    string='Valor do Pagamento'
  • real_payment_date Date
    string='Data do Crédito'
  • rebate_value Float
    help='Se o desconto ou abatimento é concedido na entrada do boleto\n estes campos são retornados zerados(apesar de corretamente registrados\n no Itaú). Se concedidos após a entrada, retornam com os valores\n do desconto ou abatimento.\n Na liquidação, desconto e abatimento retornam somados no campo\n desconto; opcionalmente, mediante cadastro prévio em nosso sistema,\n estes valores poderão retornar separados, conforme mostra o\n indicador 36.4 do Item 5 - Condições Personalizadas.' string='Valor do Abatimento'
  • segment Char
    string='Segmento'
  • str_motiv_a Char
    args: 'Motivo da ocorrência 01'
  • str_motiv_b Char
    args: 'Motivo de ocorrência 02'
  • str_motiv_c Char
    args: 'Motivo de ocorrência 03'
  • str_motiv_d Char
    args: 'Motivo de ocorrência 04'
  • str_motiv_e Char
    args: 'Motivo de ocorrência 05'
  • tariff_charge Float
    string='Tarifa'
  • title_value Float
    string='Valor da Linha'
  • your_number Char
    string='Seu Número'
Public methods (0)

No public methods.

New fields (17)
  • amount_total_discount Float
    string='Valor Total de Descontos'
  • amount_total_interest_fee Float
    string='Valor Total de Juros Mora/Multa'
  • amount_total_rebate Float
    string='Valor Total de Abatimentos'
  • amount_total_received Float
    string='Valor Total Recebido'
  • amount_total_tariff_charge Float
    string='Valor Total de Tarifas'
  • amount_total_title Float
    string='Valor Total Títulos'
  • bank_account_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta cedente'
  • cnab_date_file Date
    string='CNAB Date File'
  • cnab_date_import Datetime
    string='CNAB Date Import'
  • event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='cnab_return_log_id' string='Eventos'
  • filename Char
    string='Nome do Arquivo'
  • is_cnab_lot Boolean
    string='Is CNAB Lot?'
  • move_ids Many2many → account.move
    column1='l10n_br_cnab_return_log_id' column2='move_id' comodel_name='account.move' relation='l10n_br_cnab_return_log_move_rel' string='Journal Entries'
  • name Char
    string='Name'
  • number_events Integer
    string='Número de Eventos'
  • number_lots Integer
    string='Número de Lotes'
  • sequential_file Char
    string='Sequencial do Arquivo'
Public methods (0)

No public methods.

New fields (9)
  • account_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' string='Conta Bancária'
  • company_registration_number Char
    string='Número de Inscrição'
  • company_registration_type Char
    string='Tipo de Inscrição'
  • lot_event_ids One2many → l10n_br_cnab.return.event
    comodel_name='l10n_br_cnab.return.event' inverse_name='lot_id' string='Eventos'
  • message Char
    string='Mensagem'
  • operation_service Char
    string='Tipo de Operação'
  • register_qty Integer
    string='Quantidade de Registros'
  • service_type Char
    string='Tipo do Serviço'
  • total_value Float
    string='Valor Total'
Public methods (0)

No public methods.

New fields (4)
  • bank_id Many2one → res.bank
    comodel_name='res.bank' compute='_compute_bank_id' store=True
  • bank_ids Many2many → res.bank
    column1='bank_id' column2='l10n_br_cnab_return_move_code_id' comodel_name='res.bank' relation='l10n_br_cnab_return_move_code_bank_rel' string='Banks' track_visibility='always'
  • payment_method_id Many2one → account.payment.method
    comodel_name='account.payment.method' compute='_compute_payment_method_id' store=True
  • payment_method_ids Many2many → account.payment.method
    column1='payment_method_id' column2='l10n_br_cnab_mov_instruction_code_id' comodel_name='account.payment.method' relation='l10n_br_cnab_return_move_code_payment_method_rel' string='Payment Methods' track_visibility='always'
Public methods (0)

No public methods.

New fields (2)
  • own_number_sequence_id Many2one → ir.sequence
    comodel_name='ir.sequence' string='Sequência do Nosso Número'
  • own_number_type Selection
    default='1' selection=[('0', 'Sequêncial único por empresa'), ('1', 'Numero sequêncial da Fatura'), ('2', 'Sequêncial único por carteira')] string='Tipo de nosso número'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/10.0/l10n_br_account_payment_order
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYBanking addons
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), KMEE
COMMITTERS
COMMITTERSLuis Felipe Mileo, OCA Transbot, oca-travis, OCA-git-bot, Renato, Magno Costa
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-fiscal-rule:
    - account_fiscal_position_rule
OCA/account-payment:
    - account_due_list
OCA/bank-payment:
    - account_payment_order
    - account_payment_partner
    - account_payment_mode
OCA/l10n-brazil:
    - l10n_br_account
    - l10n_br_generic
    - l10n_br_base
odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - report
    - analytic
    - web_planner
    - account_cancel
    - l10n_generic_coa
    - base_iban
    - document
    - account_accountant
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES num2words
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
l10n_br_banking_account_payment_line_form l10n_br_account.payment.line.form.banking account.payment.line xpath Inherits account_payment_order.account_payment_line_form
view_payment_mode_form_inherit_l10n_br_payment payment.mode.l10n_br_payment.form.inherit account.payment.mode xpath Inherits account_payment_order.account_payment_mode_form
view_payments_mode_tree l10n_br_account_banking_payment.aml account.move.line field Inherits account_due_list.view_payments_tree
Models touched (4)

New fields (2)
  • date_scheduled Date
    string='Data Prevista'
  • journal_entry_ref Char
    compute=_get_journal_entry_ref string='Journal Entry Ref'
Public methods (1)
  • get_balance(self)
    @api.multi
    Return the balance of any set of move lines. Not to be confused with the 'balance' field on this model, which returns the account balance that the move line applies to.

New fields (3)
  • amount_interest Float
    compute='_compute_interest' digits=dp.get_precision('Account') string='Valor Juros'
  • linha_digitavel Char
    string='Linha Digitável'
  • percent_interest Float
    digits=dp.get_precision('Account') string='Percentual de Juros'
Public methods (0)

No public methods.

New fields (3)
  • instrucoes Text
    args: 'Instruções de cobrança'
  • internal_sequence_id Many2one → ir.sequence
    args: 'ir.sequence', 'Sequência'
  • invoice_print Boolean
    args: 'Gerar relatorio na conclusão da fatura?'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • check_bra_number(self)
    @api.multi@api.constrains('bra_number')