From 80743ae0e17a993e307f179447621898b076b563 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Tue, 13 Aug 2024 22:16:48 +0200 Subject: [PATCH 1/9] [ADD] account_in_payment --- account_in_payment/README.rst | 78 ++++ account_in_payment/__init__.py | 1 + account_in_payment/__manifest__.py | 15 + account_in_payment/models/__init__.py | 1 + account_in_payment/models/account_move.py | 22 + account_in_payment/readme/CONTRIBUTORS.md | 1 + account_in_payment/readme/DESCRIPTION.md | 3 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 421 ++++++++++++++++++ account_in_payment/tests/__init__.py | 1 + .../tests/test_bank_account_reconcile.py | 145 ++++++ 11 files changed, 688 insertions(+) create mode 100644 account_in_payment/README.rst create mode 100644 account_in_payment/__init__.py create mode 100644 account_in_payment/__manifest__.py create mode 100644 account_in_payment/models/__init__.py create mode 100644 account_in_payment/models/account_move.py create mode 100644 account_in_payment/readme/CONTRIBUTORS.md create mode 100644 account_in_payment/readme/DESCRIPTION.md create mode 100644 account_in_payment/static/description/icon.png create mode 100644 account_in_payment/static/description/index.html create mode 100644 account_in_payment/tests/__init__.py create mode 100644 account_in_payment/tests/test_bank_account_reconcile.py diff --git a/account_in_payment/README.rst b/account_in_payment/README.rst new file mode 100644 index 00000000..5aa46ebb --- /dev/null +++ b/account_in_payment/README.rst @@ -0,0 +1,78 @@ +================== +Account In Payment +================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:27e59f268e2e2ed3367855cec9765674bd9fccaa2d2e7bf4a7aa222502802972 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/licence-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%2Faccount--reconcile-lightgray.png?logo=github + :target: https://github.com/OCA/account-reconcile/tree/16.0/account_in_payment + :alt: OCA/account-reconcile +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/account-reconcile-16-0/account-reconcile-16-0-account_in_payment + :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/account-reconcile&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module enables in-payment management for all your accounting. + +Should not be installed with Enterprise Edition accounting. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Dixmit + +Contributors +------------ + +- Enric Tobella (``Dixmit ``\ \__) + +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. + +This module is part of the `OCA/account-reconcile `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_in_payment/__init__.py b/account_in_payment/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/account_in_payment/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/account_in_payment/__manifest__.py b/account_in_payment/__manifest__.py new file mode 100644 index 00000000..4bc74f0f --- /dev/null +++ b/account_in_payment/__manifest__.py @@ -0,0 +1,15 @@ +# Copyright 2024 Dixmit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +{ + "name": "Account In Payment", + "summary": """ + This module enables in-payment mode for your accounting""", + "version": "16.0.1.0.0", + "license": "AGPL-3", + "author": "Dixmit,Odoo Community Association (OCA)", + "website": "https://github.com/OCA/account-reconcile", + "depends": ["account_reconcile_oca"], + "data": [], + "demo": [], +} diff --git a/account_in_payment/models/__init__.py b/account_in_payment/models/__init__.py new file mode 100644 index 00000000..9c0a4213 --- /dev/null +++ b/account_in_payment/models/__init__.py @@ -0,0 +1 @@ +from . import account_move diff --git a/account_in_payment/models/account_move.py b/account_in_payment/models/account_move.py new file mode 100644 index 00000000..903f6fef --- /dev/null +++ b/account_in_payment/models/account_move.py @@ -0,0 +1,22 @@ +# Copyright 2024 Dixmit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models +from odoo.tools import config + + +class AccountMove(models.Model): + + _inherit = "account.move" + + @api.model + def _get_invoice_in_payment_state(self): + """ + We override this method to change the state of the invoice to in_payment + when the payment is created from the invoice. + """ + if config["test_enable"] and not self._context.get( + "test_get_invoice_in_payment_state" + ): + return super()._get_invoice_in_payment_state() + return "in_payment" diff --git a/account_in_payment/readme/CONTRIBUTORS.md b/account_in_payment/readme/CONTRIBUTORS.md new file mode 100644 index 00000000..50d19cd9 --- /dev/null +++ b/account_in_payment/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Enric Tobella (`Dixmit `__) diff --git a/account_in_payment/readme/DESCRIPTION.md b/account_in_payment/readme/DESCRIPTION.md new file mode 100644 index 00000000..99f347aa --- /dev/null +++ b/account_in_payment/readme/DESCRIPTION.md @@ -0,0 +1,3 @@ +This module enables in-payment management for all your accounting. + +Should not be installed with Enterprise Edition accounting. diff --git a/account_in_payment/static/description/icon.png b/account_in_payment/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/account_in_payment/static/description/index.html b/account_in_payment/static/description/index.html new file mode 100644 index 00000000..2f5986eb --- /dev/null +++ b/account_in_payment/static/description/index.html @@ -0,0 +1,421 @@ + + + + + +Account In Payment + + + +
+

Account In Payment

+ + +

Beta License: AGPL-3 OCA/account-reconcile Translate me on Weblate Try me on Runboat

+

This module enables in-payment management for all your accounting.

+

Should not be installed with Enterprise Edition accounting.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Dixmit
  • +
+
+
+

Contributors

+
    +
  • Enric Tobella (Dixmit <https://www.dixmit.com/>__)
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

This module is part of the OCA/account-reconcile project on GitHub.

+

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

+
+
+
+ + diff --git a/account_in_payment/tests/__init__.py b/account_in_payment/tests/__init__.py new file mode 100644 index 00000000..78da099c --- /dev/null +++ b/account_in_payment/tests/__init__.py @@ -0,0 +1 @@ +from . import test_bank_account_reconcile diff --git a/account_in_payment/tests/test_bank_account_reconcile.py b/account_in_payment/tests/test_bank_account_reconcile.py new file mode 100644 index 00000000..1eb0624e --- /dev/null +++ b/account_in_payment/tests/test_bank_account_reconcile.py @@ -0,0 +1,145 @@ +import time + +from odoo.tests import Form, tagged + +from odoo.addons.account.tests.common import TestAccountReconciliationCommon + + +@tagged("post_install", "-at_install") +class TestReconciliationWidget(TestAccountReconciliationCommon): + @classmethod + def setUpClass(cls, chart_template_ref=None): + super().setUpClass(chart_template_ref=chart_template_ref) + cls.env = cls.env( + context=dict( + cls.env.context, + test_get_invoice_in_payment_state=True, + ) + ) + cls.acc_bank_stmt_model = cls.env["account.bank.statement"] + cls.acc_bank_stmt_line_model = cls.env["account.bank.statement.line"] + cls.bank_journal_usd.suspense_account_id = ( + cls.company.account_journal_suspense_account_id + ) + cls.bank_journal_euro.suspense_account_id = ( + cls.company.account_journal_suspense_account_id + ) + cls.current_assets_account = cls.env["account.account"].search( + [ + ("account_type", "=", "asset_current"), + ("company_id", "=", cls.company.id), + ], + limit=1, + ) + cls.current_assets_account.reconcile = True + # We need to make some fields visible in order to make the tests work + cls.env["ir.ui.view"].create( + { + "name": "DEMO Account bank statement", + "model": "account.bank.statement.line", + "inherit_id": cls.env.ref( + "account_reconcile_oca.bank_statement_line_form_reconcile_view" + ).id, + "arch": """ + + + 0 + + + 0 + + + 0 + + + """, + } + ) + + # Testing reconcile action + + def test_payment(self): + inv1 = self.create_invoice( + currency_id=self.currency_euro_id, + invoice_amount=100, + move_type="in_invoice", + ) + bank_stmt = self.acc_bank_stmt_model.create( + { + "company_id": self.env.ref("base.main_company").id, + "journal_id": self.bank_journal_euro.id, + "date": time.strftime("%Y-07-15"), + "name": "test", + } + ) + bank_stmt_line = self.acc_bank_stmt_line_model.create( + { + "name": "testLine", + "journal_id": self.bank_journal_euro.id, + "statement_id": bank_stmt.id, + "amount": -100, + "date": time.strftime("%Y-07-15"), + } + ) + receivable1 = inv1.line_ids.filtered( + lambda line: line.account_id.account_type == "liability_payable" + ) + with Form( + bank_stmt_line, + view="account_reconcile_oca.bank_statement_line_form_reconcile_view", + ) as f: + self.assertFalse(f.can_reconcile) + f.add_account_move_line_id = receivable1 + self.assertFalse(f.add_account_move_line_id) + self.assertTrue(f.can_reconcile) + self.assertEqual(inv1.amount_residual_signed, -100) + bank_stmt_line.reconcile_bank_line() + self.assertEqual(inv1.payment_state, "paid") + + def test_in_payment(self): + inv1 = self.create_invoice( + currency_id=self.currency_euro_id, + invoice_amount=100, + move_type="in_invoice", + ) + action = inv1.action_register_payment() + form = Form( + self.env[action["res_model"]].with_context( + mail_create_nolog=True, **action["context"] + ) + ) + payments = form.save()._create_payments() + self.assertEqual(inv1.payment_state, "in_payment") + bank_stmt = self.acc_bank_stmt_model.create( + { + "company_id": self.env.ref("base.main_company").id, + "journal_id": self.bank_journal_euro.id, + "date": time.strftime("%Y-07-15"), + "name": "test", + } + ) + bank_stmt_line = self.acc_bank_stmt_line_model.create( + { + "name": "testLine", + "journal_id": self.bank_journal_euro.id, + "statement_id": bank_stmt.id, + "amount": -100, + "date": time.strftime("%Y-07-15"), + } + ) + receivable1 = payments.line_ids.filtered(lambda line: not line.reconciled) + self.assertEqual(inv1.amount_residual_signed, 0) + with Form( + bank_stmt_line, + view="account_reconcile_oca.bank_statement_line_form_reconcile_view", + ) as f: + self.assertFalse(f.can_reconcile) + f.add_account_move_line_id = receivable1 + self.assertFalse(f.add_account_move_line_id) + self.assertTrue(f.can_reconcile) + self.assertEqual(inv1.amount_residual_signed, 0) + self.assertFalse(receivable1.reconciled) + bank_stmt_line.reconcile_bank_line() + self.assertEqual(inv1.payment_state, "paid") + self.assertEqual(inv1.amount_residual_signed, 0) + self.assertTrue(receivable1.reconciled) From a7b778206905ae5e9d72270cb487c184f8cee766 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 14 Aug 2024 14:49:35 +0000 Subject: [PATCH 2/9] [UPD] Update account_in_payment.pot --- .../i18n/account_in_payment.pot | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 account_in_payment/i18n/account_in_payment.pot diff --git a/account_in_payment/i18n/account_in_payment.pot b/account_in_payment/i18n/account_in_payment.pot new file mode 100644 index 00000000..137c3722 --- /dev/null +++ b/account_in_payment/i18n/account_in_payment.pot @@ -0,0 +1,19 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_in_payment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_in_payment +#: model:ir.model,name:account_in_payment.model_account_move +msgid "Journal Entry" +msgstr "" From bcdd1c1f24159062752cfbc2d018b6f232912735 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 14 Aug 2024 14:52:20 +0000 Subject: [PATCH 3/9] [BOT] post-merge updates --- account_in_payment/README.rst | 4 ++-- account_in_payment/static/description/index.html | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/account_in_payment/README.rst b/account_in_payment/README.rst index 5aa46ebb..cae8f338 100644 --- a/account_in_payment/README.rst +++ b/account_in_payment/README.rst @@ -7,7 +7,7 @@ Account In Payment !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:27e59f268e2e2ed3367855cec9765674bd9fccaa2d2e7bf4a7aa222502802972 + !! source digest: sha256:f31a0569902b33f0403cc89486dd058cc1ccecaecfe2b9c38d6201d614f55981 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -58,7 +58,7 @@ Authors Contributors ------------ -- Enric Tobella (``Dixmit ``\ \__) +- Enric Tobella (``Dixmit ``\ \_\_) Maintainers ----------- diff --git a/account_in_payment/static/description/index.html b/account_in_payment/static/description/index.html index 2f5986eb..c23a8a2c 100644 --- a/account_in_payment/static/description/index.html +++ b/account_in_payment/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code { margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.option { span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -366,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:27e59f268e2e2ed3367855cec9765674bd9fccaa2d2e7bf4a7aa222502802972 +!! source digest: sha256:f31a0569902b33f0403cc89486dd058cc1ccecaecfe2b9c38d6201d614f55981 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/account-reconcile Translate me on Weblate Try me on Runboat

This module enables in-payment management for all your accounting.

@@ -408,7 +409,9 @@ If you spotted it first, help us to smash it by providing a detailed and welcome

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

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.

From f67b0572d9327441fbbecc9931df2b749818734a Mon Sep 17 00:00:00 2001 From: mymage Date: Fri, 16 Aug 2024 07:20:18 +0000 Subject: [PATCH 4/9] Added translation using Weblate (Italian) --- account_in_payment/i18n/it.po | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 account_in_payment/i18n/it.po diff --git a/account_in_payment/i18n/it.po b/account_in_payment/i18n/it.po new file mode 100644 index 00000000..883b7bee --- /dev/null +++ b/account_in_payment/i18n/it.po @@ -0,0 +1,20 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_in_payment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: account_in_payment +#: model:ir.model,name:account_in_payment.model_account_move +msgid "Journal Entry" +msgstr "" From 950155d1e6c6d6b10e632650681e27e0f5324106 Mon Sep 17 00:00:00 2001 From: mymage Date: Fri, 16 Aug 2024 07:20:26 +0000 Subject: [PATCH 5/9] Translated using Weblate (Italian) Currently translated at 100.0% (1 of 1 strings) Translation: account-reconcile-16.0/account-reconcile-16.0-account_in_payment Translate-URL: https://translation.odoo-community.org/projects/account-reconcile-16-0/account-reconcile-16-0-account_in_payment/it/ --- account_in_payment/i18n/it.po | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/account_in_payment/i18n/it.po b/account_in_payment/i18n/it.po index 883b7bee..90a4a5b1 100644 --- a/account_in_payment/i18n/it.po +++ b/account_in_payment/i18n/it.po @@ -6,15 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2024-08-16 09:58+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" #. module: account_in_payment #: model:ir.model,name:account_in_payment.model_account_move msgid "Journal Entry" -msgstr "" +msgstr "Registrazione contabile" From c21227f690228f0a119c97eb6f12acb21a493537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Rom=C3=A3o?= Date: Sat, 24 Aug 2024 23:26:45 +0000 Subject: [PATCH 6/9] Added translation using Weblate (Portuguese) --- account_in_payment/i18n/pt.po | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 account_in_payment/i18n/pt.po diff --git a/account_in_payment/i18n/pt.po b/account_in_payment/i18n/pt.po new file mode 100644 index 00000000..a41bc2c8 --- /dev/null +++ b/account_in_payment/i18n/pt.po @@ -0,0 +1,20 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_in_payment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +#. module: account_in_payment +#: model:ir.model,name:account_in_payment.model_account_move +msgid "Journal Entry" +msgstr "" From 6199d39d530bf9b5548765feeadd074abb88bf53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Rom=C3=A3o?= Date: Sat, 24 Aug 2024 23:27:49 +0000 Subject: [PATCH 7/9] Translated using Weblate (Portuguese) Currently translated at 100.0% (1 of 1 strings) Translation: account-reconcile-16.0/account-reconcile-16.0-account_in_payment Translate-URL: https://translation.odoo-community.org/projects/account-reconcile-16-0/account-reconcile-16-0-account_in_payment/pt/ --- account_in_payment/i18n/pt.po | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/account_in_payment/i18n/pt.po b/account_in_payment/i18n/pt.po index a41bc2c8..61e24de1 100644 --- a/account_in_payment/i18n/pt.po +++ b/account_in_payment/i18n/pt.po @@ -6,15 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2024-08-24 23:28+0000\n" +"Last-Translator: Peter Romão \n" "Language-Team: none\n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.6.2\n" #. module: account_in_payment #: model:ir.model,name:account_in_payment.model_account_move msgid "Journal Entry" -msgstr "" +msgstr "Lançamento de Diário" From 0211a452db13ab7f0e30ea8b8532ac97d1d62092 Mon Sep 17 00:00:00 2001 From: Wesley Oliveira Date: Thu, 29 Aug 2024 11:25:37 -0300 Subject: [PATCH 8/9] [IMP] account_in_payment: black, isort, prettier --- account_in_payment/README.rst | 10 +++++----- account_in_payment/static/description/index.html | 6 +++--- .../account_in_payment/odoo/addons/account_in_payment | 1 + setup/account_in_payment/setup.py | 6 ++++++ 4 files changed, 15 insertions(+), 8 deletions(-) create mode 120000 setup/account_in_payment/odoo/addons/account_in_payment create mode 100644 setup/account_in_payment/setup.py diff --git a/account_in_payment/README.rst b/account_in_payment/README.rst index cae8f338..707b57ba 100644 --- a/account_in_payment/README.rst +++ b/account_in_payment/README.rst @@ -17,13 +17,13 @@ Account In Payment :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--reconcile-lightgray.png?logo=github - :target: https://github.com/OCA/account-reconcile/tree/16.0/account_in_payment + :target: https://github.com/OCA/account-reconcile/tree/14.0/account_in_payment :alt: OCA/account-reconcile .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/account-reconcile-16-0/account-reconcile-16-0-account_in_payment + :target: https://translation.odoo-community.org/projects/account-reconcile-14-0/account-reconcile-14-0-account_in_payment :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/account-reconcile&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/account-reconcile&target_branch=14.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -43,7 +43,7 @@ Bug Tracker Bugs are tracked on `GitHub 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -73,6 +73,6 @@ 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. -This module is part of the `OCA/account-reconcile `_ project on GitHub. +This module is part of the `OCA/account-reconcile `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_in_payment/static/description/index.html b/account_in_payment/static/description/index.html index c23a8a2c..0ae03fbd 100644 --- a/account_in_payment/static/description/index.html +++ b/account_in_payment/static/description/index.html @@ -369,7 +369,7 @@ ul.auto-toc { !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:f31a0569902b33f0403cc89486dd058cc1ccecaecfe2b9c38d6201d614f55981 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/account-reconcile Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/account-reconcile Translate me on Weblate Try me on Runboat

This module enables in-payment management for all your accounting.

Should not be installed with Enterprise Edition accounting.

Table of contents

@@ -389,7 +389,7 @@ ul.auto-toc {

Bugs are tracked on GitHub 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.

+feedback.

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

@@ -415,7 +415,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome

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.

-

This module is part of the OCA/account-reconcile project on GitHub.

+

This module is part of the OCA/account-reconcile project on GitHub.

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

diff --git a/setup/account_in_payment/odoo/addons/account_in_payment b/setup/account_in_payment/odoo/addons/account_in_payment new file mode 120000 index 00000000..b921413d --- /dev/null +++ b/setup/account_in_payment/odoo/addons/account_in_payment @@ -0,0 +1 @@ +../../../../account_in_payment \ No newline at end of file diff --git a/setup/account_in_payment/setup.py b/setup/account_in_payment/setup.py new file mode 100644 index 00000000..28c57bb6 --- /dev/null +++ b/setup/account_in_payment/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) From b4e7a72678f39f23c8172f0659bf022e67d485c6 Mon Sep 17 00:00:00 2001 From: Wesley Oliveira Date: Thu, 29 Aug 2024 11:27:23 -0300 Subject: [PATCH 9/9] [MIG] account_in_payment: Migration to 14.0 --- account_in_payment/__manifest__.py | 4 +- .../tests/test_bank_account_reconcile.py | 80 +++++++------------ 2 files changed, 33 insertions(+), 51 deletions(-) diff --git a/account_in_payment/__manifest__.py b/account_in_payment/__manifest__.py index 4bc74f0f..15a95a30 100644 --- a/account_in_payment/__manifest__.py +++ b/account_in_payment/__manifest__.py @@ -5,11 +5,11 @@ "name": "Account In Payment", "summary": """ This module enables in-payment mode for your accounting""", - "version": "16.0.1.0.0", + "version": "14.0.1.0.0", "license": "AGPL-3", "author": "Dixmit,Odoo Community Association (OCA)", "website": "https://github.com/OCA/account-reconcile", - "depends": ["account_reconcile_oca"], + "depends": ["account"], "data": [], "demo": [], } diff --git a/account_in_payment/tests/test_bank_account_reconcile.py b/account_in_payment/tests/test_bank_account_reconcile.py index 1eb0624e..1583197b 100644 --- a/account_in_payment/tests/test_bank_account_reconcile.py +++ b/account_in_payment/tests/test_bank_account_reconcile.py @@ -26,37 +26,13 @@ class TestReconciliationWidget(TestAccountReconciliationCommon): ) cls.current_assets_account = cls.env["account.account"].search( [ - ("account_type", "=", "asset_current"), + ("internal_type", "=", "other"), + ("internal_group", "=", "asset"), ("company_id", "=", cls.company.id), ], limit=1, ) cls.current_assets_account.reconcile = True - # We need to make some fields visible in order to make the tests work - cls.env["ir.ui.view"].create( - { - "name": "DEMO Account bank statement", - "model": "account.bank.statement.line", - "inherit_id": cls.env.ref( - "account_reconcile_oca.bank_statement_line_form_reconcile_view" - ).id, - "arch": """ - - - 0 - - - 0 - - - 0 - - - """, - } - ) - - # Testing reconcile action def test_payment(self): inv1 = self.create_invoice( @@ -79,21 +55,23 @@ class TestReconciliationWidget(TestAccountReconciliationCommon): "statement_id": bank_stmt.id, "amount": -100, "date": time.strftime("%Y-07-15"), + "payment_ref": "Test Payment Ref", } ) - receivable1 = inv1.line_ids.filtered( - lambda line: line.account_id.account_type == "liability_payable" + payable1 = inv1.line_ids.filtered( + lambda line: line.account_id.internal_type == "payable" ) - with Form( - bank_stmt_line, - view="account_reconcile_oca.bank_statement_line_form_reconcile_view", - ) as f: - self.assertFalse(f.can_reconcile) - f.add_account_move_line_id = receivable1 - self.assertFalse(f.add_account_move_line_id) - self.assertTrue(f.can_reconcile) self.assertEqual(inv1.amount_residual_signed, -100) - bank_stmt_line.reconcile_bank_line() + bank_stmt_line.process_reconciliation( + [ + { + "move_line": payable1, + "debit": abs(bank_stmt_line.amount), + "credit": 0.0, + "currency_id": bank_stmt_line.currency_id.id, + } + ] + ) self.assertEqual(inv1.payment_state, "paid") def test_in_payment(self): @@ -108,7 +86,7 @@ class TestReconciliationWidget(TestAccountReconciliationCommon): mail_create_nolog=True, **action["context"] ) ) - payments = form.save()._create_payments() + payments = form.save().action_create_payments() self.assertEqual(inv1.payment_state, "in_payment") bank_stmt = self.acc_bank_stmt_model.create( { @@ -125,21 +103,25 @@ class TestReconciliationWidget(TestAccountReconciliationCommon): "statement_id": bank_stmt.id, "amount": -100, "date": time.strftime("%Y-07-15"), + "payment_ref": "Test Payment Ref", } ) - receivable1 = payments.line_ids.filtered(lambda line: not line.reconciled) - self.assertEqual(inv1.amount_residual_signed, 0) - with Form( - bank_stmt_line, - view="account_reconcile_oca.bank_statement_line_form_reconcile_view", - ) as f: - self.assertFalse(f.can_reconcile) - f.add_account_move_line_id = receivable1 - self.assertFalse(f.add_account_move_line_id) - self.assertTrue(f.can_reconcile) + payment_records = self.env["account.payment"].browse(payments["res_id"]) + receivable1 = payment_records.line_ids.filtered( + lambda line: not line.reconciled + ) self.assertEqual(inv1.amount_residual_signed, 0) self.assertFalse(receivable1.reconciled) - bank_stmt_line.reconcile_bank_line() + bank_stmt_line.process_reconciliation( + [ + { + "move_line": receivable1, + "debit": abs(bank_stmt_line.amount), + "credit": 0.0, + "currency_id": bank_stmt_line.currency_id.id, + } + ] + ) self.assertEqual(inv1.payment_state, "paid") self.assertEqual(inv1.amount_residual_signed, 0) self.assertTrue(receivable1.reconciled)