Skip to content

Commit adb224f

Browse files
committed
[MIG] l10n_br_account_payment_order: Allow update the account_payment_order module after removed bank.payment.line object.
1 parent bb2edf2 commit adb224f

File tree

5 files changed

+92
-2
lines changed

5 files changed

+92
-2
lines changed

l10n_br_account_payment_order/__manifest__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
{
66
"name": "Brazilian Payment Order",
7-
"version": "14.0.2.2.0",
7+
"version": "14.0.3.0.0",
88
"license": "AGPL-3",
99
"author": "KMEE, Akretion, Odoo Community Association (OCA)",
1010
"website": "https://github.com/OCA/l10n-brazil",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Copyright (C) 2023-Today - Akretion (<http://www.akretion.com>).
2+
# @author Magno Costa <[email protected]>
3+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4+
5+
from openupgradelib import openupgrade
6+
7+
8+
def delete_payments_created_from_payment_orders(env):
9+
# TODO - Apagando os account_payment caso CNAB criados pelo modulo
10+
# account_payment_order, a avaliação para a integração e uso do
11+
# account_payment no caso CNAB é um roadmap do modulo
12+
# https://github.com/OCA/l10n-brazil/issues/2272
13+
openupgrade.logged_query(
14+
env.cr,
15+
"""
16+
DELETE FROM account_payment WHERE payment_order_id IS NOT NULL AND payment_method_id IN
17+
(SELECT id FROM account_payment_method WHERE code IN ('240', '400', '500'));
18+
""",
19+
)
20+
21+
22+
def create_payment_lines_in_cnab_log_events(env):
23+
"""Associa as linhas de Pagamentos aos Logs de Eventos CNAB."""
24+
env.cr.execute(
25+
"""
26+
SELECT id FROM l10n_br_cnab_return_event;
27+
"""
28+
)
29+
for row in env.cr.fetchall():
30+
cnab_log_event = env["l10n_br_cnab.return.event"].browse(row[0])
31+
cnab_log_event.payment_line_ids = cnab_log_event.move_line_id.payment_line_ids
32+
33+
34+
@openupgrade.migrate()
35+
def migrate(env, version):
36+
if not version:
37+
return
38+
delete_payments_created_from_payment_orders(env)
39+
create_payment_lines_in_cnab_log_events(env)

l10n_br_account_payment_order/models/account_payment_line.py

+48
Original file line numberDiff line numberDiff line change
@@ -286,3 +286,51 @@ def _prepare_boleto_line_vals(self):
286286
# o campo Code do objeto.
287287
"identificacao_ocorrencia": self.mov_instruction_code_id.code,
288288
}
289+
290+
291+
class BankPaymentLine(models.Model):
292+
_name = "bank.payment.line"
293+
_description = "Bank Payment Lines"
294+
# TODO: Sem isso acontece o erro abaixo, por isso é preciso incluir o objeto
295+
# bank.payment.line vazio e rodar um update,
296+
# Em outro PR o objeto será removido e assim em um terceiro update vai
297+
# limpar o Warning. Para evitar problemas o melhor será remover o objeto
298+
# na migração de versão v15 ou v16.
299+
# LOG com erro.
300+
# Referencia https://github.com/odoo/odoo/issues/44767
301+
#
302+
# 2023-03-10 21:15:22,323 72 INFO db odoo.addons.base.models.ir_model:
303+
# Deleting [email protected] (
304+
# l10n_br_account_payment_order.
305+
# selection__bank_payment_line__last_cnab_state__done)
306+
# 2023-03-10 21:15:22,326 72 WARNING db odoo.modules.loading:
307+
# Transient module states were reset
308+
# 2023-03-10 21:15:22,328 72 ERROR db odoo.modules.registry:
309+
# Failed to load registry
310+
# 2023-03-10 21:15:22,328 72 CRITICAL db odoo.service.server:
311+
# Failed to initialize database `db`.
312+
# Traceback (most recent call last):
313+
# File "/odoo/src/odoo/service/server.py", line 1201, in preload_registries
314+
# registry = Registry.new(dbname, update_module=update_module)
315+
# File "/odoo/src/odoo/modules/registry.py", line 89, in new
316+
# odoo.modules.load_modules(registry._db, force_demo, status, update_module)
317+
# File "/odoo/src/odoo/modules/loading.py", line 505, in load_modules
318+
# env['ir.model.data']._process_end(processed_modules)
319+
# File "/odoo/src/odoo/addons/base/models/ir_model.py",
320+
# line 2310, in _process_end
321+
# self._process_end_unlink_record(record)
322+
# File "/odoo/src/odoo/addons/base/models/ir_model.py",
323+
# line 2233, in _process_end_unlink_record
324+
# record.unlink()
325+
# File "/odoo/src/odoo/addons/base/models/ir_model.py",
326+
# line 1380, in unlink
327+
# self._process_ondelete()
328+
# File "/odoo/src/odoo/addons/base/models/ir_model.py",
329+
# line 1418, in _process_ondelete
330+
# Model = self.env[selection.field_id.model]
331+
# File "/odoo/src/odoo/api.py", line 476, in __getitem__
332+
# return self.registry[model_name]._browse(self, (), ())
333+
# File "/odoo/src/odoo/modules/registry.py",
334+
# line 177, in __getitem__
335+
# return self.models[model_name]
336+
# KeyError: 'bank.payment.line'

l10n_br_account_payment_order/readme/ROADMAP.rst

+4
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,7 @@
1818
* Funcionalidade de Agrupar Por/Group By não funciona em campos do tipo Many2Many, aparentemente isso foi resolvido na v15(verfificar na migração), isso é usado nos objetos referentes aos Codigos CNAB de Instrução e Retorno.
1919

2020
* Confirmar se existem Bancos que usam os mesmos conjuntos de Codigos CNAB de Instrução e Retorno para caso não existir remover o many2many do Banco e deixar apenas o many2one.
21+
22+
* Na migração remover o objeto bank.payment.line, que está vazio, porém é necessário para evitar erro na atualização do modulo ver detalhes em l10n_br_account_payment_order/models/account_payment_line.py:291 e referencia do problema https://github.com/odoo/odoo/issues/44767 .
23+
24+
* Verificar a possibilidade de usar o objeto account.payment no caso CNAB e o modulo https://github.com/OCA/bank-payment/tree/14.0/account_payment_order_return para tratar o LOG de Retorno do CNAB, RFC https://github.com/OCA/l10n-brazil/issues/2272 .

test-requirements.txt

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
vcrpy # Needed by payment_pagseguro
22
odoo-test-helper # Needed by spec_driven_model
33
signxml<3.1.0
4-
odoo14-addon-account-payment-order<14.0.2.0.0

0 commit comments

Comments
 (0)