Metadata-Version: 2.1
Name: odoo-addon-l10n_br_account_payment_order
Version: 16.0.8.4.0
Requires-Python: >=3.10
Requires-Dist: erpbrasil.base
Requires-Dist: odoo-addon-account_due_list_payment_mode>=16.0dev,<16.1dev
Requires-Dist: odoo-addon-account_payment_order>=16.0dev,<16.1dev
Requires-Dist: odoo-addon-l10n_br_account_due_list>=16.0dev,<16.1dev
Requires-Dist: odoo-addon-l10n_br_base>=16.0dev,<16.1dev
Requires-Dist: odoo>=16.0a,<16.1dev
Summary: Brazilian Payment Order
Home-page: https://github.com/OCA/l10n-brazil
License: AGPL-3
Author: KMEE, Akretion, Odoo Community Association (OCA)
Author-email: support@odoo-community.org
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 16.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Development Status :: 4 - Beta
Description-Content-Type: text/x-rst

.. image:: https://odoo-community.org/readme-banner-image
   :target: https://odoo-community.org/get-involved?utm_source=readme
   :alt: Odoo Community Association

=======================
Brazilian Payment Order
=======================

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:4e59263d3d87add66e76eae38cf9ae90e3f5d79f61094ab2ece7f4cbfe1fd89f
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
    :target: https://odoo-community.org/page/development-status
    :alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
    :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--brazil-lightgray.png?logo=github
    :target: https://github.com/OCA/l10n-brazil/tree/16.0/l10n_br_account_payment_order
    :alt: OCA/l10n-brazil
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/l10n-brazil-16-0/l10n-brazil-16-0-l10n_br_account_payment_order
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-brazil&target_branch=16.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

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.

**Table of contents**

.. contents::
   :local:

Installation
============

Este módulo depende do:

- l10n_br_base
- account_payment_order
- account_due_list
- account_cancel

Configuration
=============

Verifique se os **Códigos CNAB** do Banco e da versão 240 ou 400 que
serão usados principalmente os de **Instrução e de Retorno do
Movimento** do CNAB existem ou se será necessário criar em:

**Faturamento > Configuração > Administração > Códigos CNAB**

Caso seja preciso criar por favor considere fazer um PR nesse módulo
acrescentando os Códigos em
**l10n_br_account_payment_order/data/cnab_codes/banco_X_cnab_Y_Z.xml**
dessa forma nas próximas implementações já não será preciso cadastrar,
isso ajuda na construção de um banco de conhecimento, salvando tanto
horas de implementação por não ser necessário rever ou refazer o que foi
feito como poder usar o que outros fizeram, isso também é importante
porque permite testar e avaliar as diferenças entre cada caso tornando a
implementação mais robusta, hoje o que temos são:

========= ======= ========= =======
Banco     CNAB    Instrução Retorno
========= ======= ========= =======
AILOS     240     X         X
Bradesco  240/400 X         X
Brasil    240/400 X         X
CEF       240     X         X
Itaú      240/400 X         X
Santander 240/400 X         X
Sicred    240     X         X
Unicred   240/400 X         X
========= ======= ========= =======

Crie uma **Configuração CNAB**, é onde será armazenada as informações
específicas de cada caso como a Carteira, Convênio, Código do
Benificiário, Códigos de Instrução e Retorno do Movimento, etc em:

**Faturamento > Configuração > Administração > Configurações do CNAB**

Verifique se a **Conta Bancária** referente ao CNAB já foi cadastrada
em:

**Configurações > Usuários e Empresas > Empresas**

Clique no Contato associado e na aba **Faturamento** veja **Contas
Bancárias** se não existir veja de criar informando os dados Número da
Conta, Agencia, etc.

Ao cadastrar uma **Conta Bancária** deve ser criado automaticamente um
**Diário Contábil**, ou se já havia sido cadastrada o Diário já deve
existir, verifique em:

**Faturamento > Configurações > Financeiro > Diários**

Verifique se as informações estão corretas, campo **Tipo** deve estar
como Banco, na aba **Lançamentos do Diário** em Número da Conta Bancária
deve estar preenchido com a **Conta Bancária** e na aba **Configuração
de Pagamentos** os Metódos que serão usados, 240 ou 400, devem estar
marcados.

Crie um **Modo de Pagamento** ou use um existente em:

**Faturamento > Configuração > Administração > Modos de Pagamento**

Informe o Diário Contábil referente ao Banco e a Configuração CNAB que
deverá ser utilizada.

A partir disso sempre que for informado o **Modo de Pagamento** tanto em
um Pedido de Vendas ou na Fatura o programa passa a identificar como um
caso CNAB, em casos onde um cliente vai sempre usar o mesmo Modo de
Pagamento também é possível deixar isso como padrão no Cadastro de
Cliente assim a informação é carregada automaticamente ao informar esse
Cliente em um novo Pedido de Venda ou Fatura.

Verifique as permissões de acesso dos usuários que vão utilizar o CNAB,
existe o **Usuário** e o **Gerente** CNAB.

**IMPORTANTE:** Como o CNAB envolve dinheiro e o caixa da empresa a
segurança e a rastreablidade são fundamentais e como as configurações
especificas de cada CNAB estão na **Configuração
CNAB/l10n_br_cnab.config** foi incluído nele o objeto **mail.thread**
que registra alterações feitas em campos importantes, porém campos
**many2many** não estão sendo registrados pelo **track_visibility** (ver
detalhes aqui
l10n_br_account_payment_order/models/l10n_br_cnab_config.py#L75), e um
campo específico e importante que armazena os **Códigos de Retorno do
CNAB** que devem gerar **Baixa/Liquidação** é desse tipo, portanto as
alterações referentes a esse campo não estão sendo registradas. No
repositório https://github.com/OCA/social/tree/16.0 da **OCA** existe um
módulo para corrigir isso o
`mail_improved_tracking_value <https://github.com/OCA/social/tree/16.0/mail_improved_tracking_value>`__,
por isso considere e é RECOMENDADO incluir esse módulo na implementação
para corrigir esse problema. A inclusão da dependência desse módulo aqui
está pendente de aprovação.

Usage
=====

Ao criar uma **Fatura Documento Fiscal/account.move** que tem um **Modo
de Pagamento** com uma **Configuração CNAB** definida e se o campo
**auto_create_payment_order** estiver marcado as linhas referentes as
Parcelas serão criadas automaticamente em uma nova **Ordem de
Pagamento**, débito ou crédito, ou adicionadas em uma já existente que
esteja no estado **Rascunho**, também é possível incluir manualmente, a
geração do Boleto, Arquivo de Envio e o tratamento do Arquivo de Retorno
dependem da instalação de um segundo módulo onde é definida a biblioteca
a ser utilizada.

Known issues / Roadmap
======================

- Verificar a questão do campos **many2many** que não estão sendo
  registrados pelo **track_visibility** e se será incluída a dependência
  do módulo
  `mail_improved_tracking_value <https://github.com/OCA/social/tree/16.0/mail_improved_tracking_value>`__.
- Processo de Alteração de Carteira, falta informações sobre o processo.
- Mapear e incluir os Códigos dos Bancos CNAB 240/400, aqui devido a
  quantidade de possibilidades se trata de um "roadmap" constante onde
  contamos com PRs de outros contribuidores que irão implementar um caso
  que ainda não esteja cadastrado, apesar do código permitir que o
  cadastro seja feito na tela nesses casos.
- Processo de "Antecipação do Título junto ao Banco" ou "Venda do Título
  junto a Factoring" ver as alterações feitas na v14 em diante
  https://www.odoo.com/pt_BR/forum/ajuda-1/v14-change-in-payment-behavior-how-do-the-suspense-and-outstanding-payment-accounts-change-the-journal-entries-posted-177592.
- CNAB de Pagamento, verificar a integração com o PR
  https://github.com/OCA/l10n-brazil/pull/972 e a possibilidade de
  múltiplos **Modos de Pagamento** na mesma **Ordem de Pagamento**
  https://github.com/odoo-brazil/l10n-brazil/pull/112
- Verificar a possibilidade na v16 em diante de remoção do
  **ondele='restrict'** no campo "move_line_id" e o campo "related"
  "ml_maturity_date" do **account.payment.line** no módulo dependente
  https://github.com/OCA/bank-payment/blob/16.0/account_payment_order/models/account_payment_line.py#L39
  para permitir o processo de **Cancelamento de uma Fatura** quando
  existe uma **Ordem de Pagamento** já Confirmada/Gerada/Enviada
  (detalhes
  l10n_br_account_payment_order/models/account_payment_line.py#L130)
- Confirmar se existem Bancos que usam os mesmos conjuntos de Códigos
  CNAB de Instrução e Retorno para caso não existir remover o
  **many2many** do Banco e deixar apenas o **many2one**.
- Verificar a possibilidade de usar o objeto **account.payment** no caso
  CNAB e o módulo
  https://github.com/OCA/bank-payment/tree/16.0/account_payment_order_return
  para tratar o **LOG de Retorno do CNAB, RFC**
  https://github.com/OCA/l10n-brazil/issues/2272.

Changelog
=========

16.0.8.0.0 (2025-09-02)
-----------------------

- [REF] Alterado o Código de Multa de Char para Objeto/l10n_br_cnab.code

16.0.6.0.0 (2025-03-06)
-----------------------

- [REF] Alterado o Código de Protesto de Char para
  Objeto/l10n_br_cnab.code

16.0.5.0.0 (2024-12-16)
-----------------------

- [REM] "Foward Port" Removendo Campos, Visões e Objetos obsoletos.

16.0.4.0.0 (2024-12-16)
-----------------------

- [IMP] "Foward Port" Possibilidade de informar Códigos de Desconto além
  do 0 e 1.

16.0.3.0.0 (2024-12-16)
-----------------------

- [REF] "Foward-Port" Separando as Configurações do CNAB do Modo de
  Pagamento.

16.0.2.0.0 (2024-12-04)
-----------------------

- [REF] "Foward-Port" Unindo os Códigos CNAB em um mesmo objeto.

16.0.1.0.0 (2024-09-10)
-----------------------

- [MIG] Migração para a versão 16.0

15.0.1.0.0 (2024-07-25)
-----------------------

- [MIG] Migração para a versão 15.0

14.0.9.0.0 (2024-09-19)
-----------------------

- [REM] Removendo Campos, Visões e Objetos obsoletos.

14.0.8.0.0 (2024-09-18)
-----------------------

- [IMP] Possibilidade de informar Códigos de Desconto além do 0 e 1.

14.0.7.0.0 (2024-09-13)
-----------------------

- [REF] Separando as Configurações do CNAB do Modo de Pagamento.

14.0.6.0.0 (2024-09-10)
-----------------------

- [REF] Unindo os Códigos CNAB em um mesmo objeto.

14.0.1.0.0 (2022-04-29)
-----------------------

- [MIG] Migração para a versão 14.0.

13.0.1.0.0 (2022-01-28)
-----------------------

- [MIG] Migração para a versão 13.0.

12.0.3.0.0 (2021-05-13)
-----------------------

- [MIG] Migração para a versão 12.0.
- Incluído a possibilidade de parametrizar o CNAB 240 e 400, devido a
  falta de padrão cada Banco e CNAB podem ter e usar codigos diferentes.
- Incluído os metodos para fazer alterações em CNAB já enviados.
- Incluído dados de demo e testes.
- Separado o objeto que fazia o Retorno do arquivo e registrava as
  informações para ter um objeto especifico que registra o Log e assim
  os modulos que implementam a biblioteca escolhida podem ter um
  metodo/objeto especifico para essa função.

12.0.1.0.0 (2019-06-06)
-----------------------

- [MIG] Inicio da Migração para a versão 12.0.

10.0.2.0.0 (2018-05-17)
-----------------------

- [REF] Modulo unido com o l10n_br_account_payment_mode e renomeado para
  l10n_br_account_payment_order.

10.0.1.0.0 (2018-08-29)
-----------------------

- [MIG] Migração para a versão 10.

8.0.1.0.1 (2017-07-14)
----------------------

- [NEW] Refatoração e melhorias para suportar a geração de boletos
  através do br-cobranca (ruby)

8.0.1.0.0 (2017-07-14)
----------------------

- [NEW] Melhorias para suportar a geração de pagamento da folha de
  pagamento;

8.0.0.0.0 (2016-01-18)
----------------------

- [NEW] Primeira versão

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-brazil/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/l10n-brazil/issues/new?body=module:%20l10n_br_account_payment_order%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* KMEE
* Akretion

Contributors
------------

- `KMEE <https://www.kmee.com.br>`__:

  - Luis Felipe Mileo <mileo@kmee.com.br>
  - Fernando Marcato
  - Hendrix Costa <hendrix.costa@kmee.com.br>

- `Akretion <https://www.akretion.com/pt-BR>`__:

  - Magno Costa <magno.costa@akretion.com.br>

- `Engenere <https://engenere.one>`__:

  - Antônio S. Pereira Neto <neto@engenere.one>

- `Escodoo <https://www.escodoo.com.br>`__:

  - Marcel Savegnago <marcel.savegnago@escodoo.com.br>

Other credits
-------------

The development of this module has been financially supported by:

- KMEE INFORMATICA LTDA - `www.kmee.com.br <http://www.kmee.com.br>`__
- AKRETION LTDA - `www.akretion.com <http://www.akretion.com>`__

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
   :alt: Odoo Community Association
   :target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-mbcosta| image:: https://github.com/mbcosta.png?size=40px
    :target: https://github.com/mbcosta
    :alt: mbcosta

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-mbcosta| 

This module is part of the `OCA/l10n-brazil <https://github.com/OCA/l10n-brazil/tree/16.0/l10n_br_account_payment_order>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
