diff --git a/account_bank_statement_clear_partner/__manifest__.py b/account_bank_statement_clear_partner/__manifest__.py
index 9ff5eb16..88e2442b 100644
--- a/account_bank_statement_clear_partner/__manifest__.py
+++ b/account_bank_statement_clear_partner/__manifest__.py
@@ -2,7 +2,7 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Clear all partners in bank statement lines",
- "version": "13.0.1.0.0",
+ "version": "15.0.1.0.0",
# see https://odoo-community.org/page/development-status
"development_status": "Production/Stable",
"category": "Invoicing Management",
diff --git a/account_bank_statement_clear_partner/models/account_bank_statement.py b/account_bank_statement_clear_partner/models/account_bank_statement.py
index 30cf2bc6..c275b324 100644
--- a/account_bank_statement_clear_partner/models/account_bank_statement.py
+++ b/account_bank_statement_clear_partner/models/account_bank_statement.py
@@ -8,6 +8,6 @@ class AccountBankStatementClearPartner(models.Model):
_inherit = "account.bank.statement"
def clear_partners(self):
- self.mapped("line_ids").filtered(
- lambda x: not x.journal_entry_ids and not x.account_id
- ).write({"partner_id": False})
+ for line in self.line_ids:
+ if not line.is_reconciled:
+ line.write({"partner_id": False})
diff --git a/account_bank_statement_clear_partner/readme/CONTRIBUTORS.rst b/account_bank_statement_clear_partner/readme/CONTRIBUTORS.rst
index d834bd27..6b8aaace 100644
--- a/account_bank_statement_clear_partner/readme/CONTRIBUTORS.rst
+++ b/account_bank_statement_clear_partner/readme/CONTRIBUTORS.rst
@@ -4,3 +4,4 @@
* João Marques
* Pedro M. Baeza
* Carlos Roca
+ * César A. Sánchez
diff --git a/account_bank_statement_clear_partner/tests/test_account_bank_statement_clear_patner.py b/account_bank_statement_clear_partner/tests/test_account_bank_statement_clear_patner.py
index 63ff706e..489e710f 100644
--- a/account_bank_statement_clear_partner/tests/test_account_bank_statement_clear_patner.py
+++ b/account_bank_statement_clear_partner/tests/test_account_bank_statement_clear_patner.py
@@ -5,11 +5,39 @@ from odoo.tests import common
class TestAccountBankStatementClearPartner(common.SavepointCase):
+ @classmethod
+ def setup_multi_currency_data(cls, default_values=None, rate2016=3.0, rate2017=2.0):
+ default_values = default_values or {}
+ foreign_currency = cls.env["res.currency"].search(
+ [("active", "=", False)], limit=1
+ )
+ rate1 = cls.env["res.currency.rate"].create(
+ {
+ "name": "2016-01-01",
+ "rate": rate2016,
+ "currency_id": foreign_currency.id,
+ "company_id": cls.env.company.id,
+ }
+ )
+ rate2 = cls.env["res.currency.rate"].create(
+ {
+ "name": "2017-01-01",
+ "rate": rate2017,
+ "currency_id": foreign_currency.id,
+ "company_id": cls.env.company.id,
+ }
+ )
+ return {
+ "currency": foreign_currency,
+ "rates": rate1 + rate2,
+ }
+
@classmethod
def setUpClass(cls):
super(TestAccountBankStatementClearPartner, cls).setUpClass()
cls.partner_1 = cls.env["res.partner"].create({"name": "Partner 1"})
cls.partner_2 = cls.env["res.partner"].create({"name": "Partner 2"})
+ cls.currency_data = cls.setup_multi_currency_data()
cls.account_type_1 = cls.env["account.account.type"].create(
{"name": "Test Account Type 1", "type": "other", "internal_group": "income"}
)
@@ -25,26 +53,24 @@ class TestAccountBankStatementClearPartner(common.SavepointCase):
{
"name": "Test Journal 1",
"type": "bank",
- "sequence_id": cls.sequence_1.id,
+ "secure_sequence_id": cls.sequence_1.id,
}
)
cls.statement_1 = cls.env["account.bank.statement"].create(
{"name": "Test Bank Statement 1", "journal_id": cls.journal_1.id}
)
- cls.account_move_1 = cls.env["account.move"].create(
- {"name": "Test Account Move 1", "journal_id": cls.journal_1.id}
- )
- cls.account_move_line_1 = cls.env["account.move.line"].create(
- {"move_id": cls.account_move_1.id, "account_id": cls.account_1.id}
- )
+
+ cls.currency_2 = cls.currency_data["currency"]
line_obj = cls.env["account.bank.statement.line"]
cls.st_line_w_partner_not_reconciled = line_obj.create(
{
"name": "Test Account Bank Statement 1",
"statement_id": cls.statement_1.id,
"partner_id": cls.partner_1.id,
- "journal_entry_ids": False,
- "account_id": False,
+ "payment_ref": "REF-TEST-1",
+ "foreign_currency_id": cls.currency_2.id,
+ "amount": 1250.0,
+ "amount_currency": 2500.0,
}
)
cls.st_line_wo_partner_not_reconciled = line_obj.create(
@@ -52,8 +78,7 @@ class TestAccountBankStatementClearPartner(common.SavepointCase):
"name": "Test Account Bank Statement 2",
"statement_id": cls.statement_1.id,
"partner_id": False,
- "journal_entry_ids": False,
- "account_id": False,
+ "payment_ref": "REF-TEST-2",
}
)
cls.st_line_w_partner_reconciled = line_obj.create(
@@ -61,10 +86,27 @@ class TestAccountBankStatementClearPartner(common.SavepointCase):
"name": "Test Account Bank Statement 3",
"statement_id": cls.statement_1.id,
"partner_id": cls.partner_2.id,
+ "payment_ref": "REF-TEST-3",
}
)
- cls.account_move_line_1.write(
- {"statement_line_id": cls.st_line_w_partner_reconciled.id}
+
+ cls.account_move_1 = cls.env["account.move"].create(
+ {
+ "move_type": "entry",
+ "journal_id": cls.journal_1.id,
+ "invoice_line_ids": [
+ (
+ 0,
+ 0,
+ {
+ "name": "50 to pay",
+ "account_id": cls.account_1.id,
+ "amount_residual": 1,
+ "statement_line_id": cls.st_line_w_partner_reconciled.id,
+ },
+ )
+ ],
+ }
)
def test_bank_statements_clear_partner(self):
diff --git a/account_bank_statement_clear_partner/views/account_bank_statement_views.xml b/account_bank_statement_clear_partner/views/account_bank_statement_views.xml
index 06664126..9dadd825 100644
--- a/account_bank_statement_clear_partner/views/account_bank_statement_views.xml
+++ b/account_bank_statement_clear_partner/views/account_bank_statement_views.xml
@@ -6,7 +6,7 @@
account.bank.statement
-