From eafd8ca6eec15d58f72b961aff03bdc6b120f3bf Mon Sep 17 00:00:00 2001 From: Akim Juillerat Date: Thu, 26 Apr 2018 12:18:31 +0200 Subject: [PATCH 1/6] [MIG] account_reconcile_rule_early_payment_discount : Migration to 11.0 --- .../README.rst | 88 ++++++++ .../__init__.py | 4 + .../__manifest__.py | 20 ++ .../docs/operation_rule_menu.png | Bin 0 -> 106124 bytes .../docs/reconcilation.png | Bin 0 -> 29980 bytes .../docs/rule.png | Bin 0 -> 50912 bytes .../docs/rule_model.png | Bin 0 -> 42093 bytes .../models/__init__.py | 1 + .../models/account_reconcile_rule.py | 85 ++++++++ .../tests/__init__.py | 4 + .../tests/test_rule_early_payment_discount.py | 193 ++++++++++++++++++ .../views/account_reconcile_rule_view.xml | 15 ++ 12 files changed, 410 insertions(+) create mode 100644 account_reconcile_rule_early_payment_discount/README.rst create mode 100644 account_reconcile_rule_early_payment_discount/__init__.py create mode 100644 account_reconcile_rule_early_payment_discount/__manifest__.py create mode 100644 account_reconcile_rule_early_payment_discount/docs/operation_rule_menu.png create mode 100644 account_reconcile_rule_early_payment_discount/docs/reconcilation.png create mode 100644 account_reconcile_rule_early_payment_discount/docs/rule.png create mode 100644 account_reconcile_rule_early_payment_discount/docs/rule_model.png create mode 100644 account_reconcile_rule_early_payment_discount/models/__init__.py create mode 100644 account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py create mode 100644 account_reconcile_rule_early_payment_discount/tests/__init__.py create mode 100644 account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py create mode 100644 account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml diff --git a/account_reconcile_rule_early_payment_discount/README.rst b/account_reconcile_rule_early_payment_discount/README.rst new file mode 100644 index 0000000000..c23675cfe5 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/README.rst @@ -0,0 +1,88 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: https://www.gnu.org/licenses/agpl + :alt: License: AGPL-3 + +================================================= +Account Reconcile Rule for Early Payment Discount +================================================= + +Extends the module *Account Reconcile Rules* with a new rule type : +**Early Payment Discount**. + +It allows to automatically create a write-off +entry for the amount paid by the customers when they received dunning +fees (using the **Account Credit Control** module). + +Usage +----- + +1. Look at ``account_early_payment_discount`` +module in the project: https://github.com/OCA/account-payment +to configure payment terms with an early payment discount. + +----- + +2. Configure some ``Reconciliation Models`` in +``Invoicing > Dashboard > Bank Card > Reconciliation Models`` + +.. image:: docs/operation_rule_menu.png + +.. image:: docs/rule_model.png + +----- + +3. Then configure a new Reconciliation Rule in +``Invoicing > Dashboard > Bank Card > Reconciliation Rules`` + +.. image:: docs/rule.png + +----- + +4. Then during reconciliation, if a bank statement line matches an invoice which has a +payment term configured with early payment discount, this rule will verify if +the remaining balance respects the early payment discount rules +(discount percentage and payment delay). +If true, the remaining balance will be automatically reconciled in the configured account. + +.. image:: docs/reconcilation.png + + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/98/11.0 + +Dependencies +------------ + +This module only works with the ``account_early_payment_discount`` +module in the project: https://github.com/OCA/account-payment + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* Cyril Gaudin +* Akim Juillerat + + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +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. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/account_reconcile_rule_early_payment_discount/__init__.py b/account_reconcile_rule_early_payment_discount/__init__.py new file mode 100644 index 0000000000..f506574297 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2016 Cyril Gaudin (Camptocamp) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import models diff --git a/account_reconcile_rule_early_payment_discount/__manifest__.py b/account_reconcile_rule_early_payment_discount/__manifest__.py new file mode 100644 index 0000000000..da55814f28 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2016 Cyril Gaudin (Camptocamp) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + 'name': 'Early Payment Discount Reconciliation Rules', + 'version': '11.0.1.0.0', + 'author': 'Camptocamp, Odoo Community Association (OCA)', + 'license': 'AGPL-3', + 'category': 'Accounting & Finance', + 'depends': [ + 'account_reconcile_rule', + 'account_early_payment_discount', + ], + 'website': 'https://github.com/OCA/account-reconcile', + 'data': [ + 'views/account_reconcile_rule_view.xml', + ], + 'installable': True, + 'auto_install': True, +} diff --git a/account_reconcile_rule_early_payment_discount/docs/operation_rule_menu.png b/account_reconcile_rule_early_payment_discount/docs/operation_rule_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..1dc95fd900e4783fbbab1540c918dd186b9b0380 GIT binary patch literal 106124 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 literal 0 HcmV?d00001 diff --git a/account_reconcile_rule_early_payment_discount/docs/rule.png b/account_reconcile_rule_early_payment_discount/docs/rule.png new file mode 100644 index 0000000000000000000000000000000000000000..242392a79532795c1eced3aa3c24d66621e33c99 GIT binary patch literal 50912 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ⅆ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 SLVv=K#-78w6L+5Z+y4W$P*9El literal 0 HcmV?d00001 diff --git a/account_reconcile_rule_early_payment_discount/docs/rule_model.png b/account_reconcile_rule_early_payment_discount/docs/rule_model.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1b6c59fe5df96f095394e3c42b78d071734324 GIT binary patch literal 42093 zcmdSBcT|&E^e*h^s3R(j3Zft&I!KXXp;twbCcSr+CcT4{fMpP+OYbOz5?ZA9pduh3 zy@VE`A_NE|LI@E;;GP%I@i%kVx_{hn-L*azOG)yUbM|@m-p_vadGlOTUGXR#3*DYQ zdyXnA-PGQ*=Ky@qp5NO3H~`)mWtNcNv*+v{<(t=aAEYf{)=c6kjay5k%)jhX2Rz%A zO=3h>QWeJeDBWKTs zElBMP<@vO{zWLCj`O?0RZ^F;YV$tN964JdY|EiS<((>lS*1)~;L*V8+Ki}fFP7{v) zc(v!v>@CjyKVM~LMeqIb;-Q9?(r-UryvgGMv)KLlq{9fNwfpmpmyY+x-+R6@1~dMA z5fCa5Sz+f#R^k8lHpr9Or`O__4?l~yxK?zp=OhC)w%)|t!cCsTN!-JL!-M*K?^GpW zuJ-j!8l}Fx?4%xbWhoD-(O0jPM{QJx-H6@Tdyk1J_38q#@7m0wBog=T_(WYvaj8~v zaeDnBaUK*ss5L(hm_SUGW&7UlL1BbpF3T8I)u*Z zBL!t9iR2547dnN`4i}E&+HsY6lf<{0M`!9?m){>s?wSdNk;rKC@z(f@`aFDm_8%x7 z^Iw${$61aa&k}JM<{7_NTbSAOg7AK6O3(t?+p7ty_bm?%3r%w__ngy4q9{9-J7v^h ztRx_H=W?J`X6@p{YdHyvXQ5p$fDz_d>w+GpSIxwszKbrFIEOSwuP@h^8+*Sgus&F1 z{AX;APqsRqQa<&SgE4Q)C`Zg$ESai}GGL?#{awz7_ zFTF98krKPk#pKnzY5YKyNK_zRv3iY7eX-0|!K@wlTWJTcx7mf0@n{zG>4@OLJE+5} z^7f=$HObdOO{(0nv5i#`lY($j1x42J+90efG@-rw_F0Rj#>Xf78pu6q=3Hȹ| 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 literal 0 HcmV?d00001 diff --git a/account_reconcile_rule_early_payment_discount/models/__init__.py b/account_reconcile_rule_early_payment_discount/models/__init__.py new file mode 100644 index 0000000000..cfa9312b36 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/models/__init__.py @@ -0,0 +1 @@ +from . import account_reconcile_rule diff --git a/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py b/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py new file mode 100644 index 0000000000..f342a4f303 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py @@ -0,0 +1,85 @@ +# Copyright 2016 Cyril Gaudin (Camptocamp) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from datetime import timedelta + +from odoo import api, fields, models + + +class AccountReconcileRule(models.Model): + _inherit = 'account.reconcile.rule' + + rule_type = fields.Selection( + selection_add=[('early_payment_discount', 'Early Payment Discount')], + ) + + @api.multi + def _is_valid_early_payment_discount(self, statement_line, move_lines, + balance): + """Return True if *move_lines* are linked to only one invoice + with a payment term which has an early payment discount + and if *balance* and the *statement_line* date match the + early payment discount rules. + + :type statement_line: AccountBankStatementLine + :type move_lines: stock_move + :type balance: float + :rtype: bool + """ + + if not move_lines or balance >= 0: + return False + else: + invoice = move_lines.mapped('invoice_id') + + if len(invoice) != 1: + return False + elif not invoice.payment_term_id.early_payment_discount: + return False + else: + return self._check_early_payment_discount( + statement_line, invoice, balance + ) + + @api.multi + def _check_early_payment_discount(self, statement_line, invoice, + balance): + """ Return True if *balance* and the *statement_line* date match the + early payment discount rules for *invoice*. + + :type statement_line: AccountBankStatementLine + :type invoice: AccountInvoice + :type balance: float + :rtype: bool + """ + payment_term = invoice.payment_term_id + + max_date = fields.Date.from_string(invoice.date_invoice) + timedelta( + days=payment_term.epd_nb_days + ) + + if fields.Date.from_string(statement_line.date) > max_date: + return False + + percent = payment_term.epd_discount / 100.0 + discount_balance = invoice.amount_total * percent + + if payment_term.epd_tolerance: + discount_balance += payment_term.epd_tolerance + + return self._between_with_bounds( + # Balance is negative in our case + 0, -balance, discount_balance, statement_line.currency_for_rules() + ) + + @api.multi + def is_valid(self, statement_line, move_lines, balance): + """ Override account.operation.rule is_valid for early_payment_discount + case + """ + if self.rule_type == 'early_payment_discount': + return self._is_valid_early_payment_discount( + statement_line, move_lines, balance + ) + else: + return super().is_valid(statement_line, move_lines, balance) diff --git a/account_reconcile_rule_early_payment_discount/tests/__init__.py b/account_reconcile_rule_early_payment_discount/tests/__init__.py new file mode 100644 index 0000000000..d7770592c7 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2016 Cyril Gaudin (Camptocamp) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import test_rule_early_payment_discount diff --git a/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py b/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py new file mode 100644 index 0000000000..6c625dc85c --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py @@ -0,0 +1,193 @@ +# Copyright 2016 Cyril Gaudin (Camptocamp) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from datetime import date, timedelta + +from odoo.tests.common import SavepointCase + + +class TestEarlyPaymentDiscountRule(SavepointCase): + + @classmethod + def setUpClass(cls): + super().setUpClass() + + # Customer Partner + cls.partner = cls.env['res.partner'].with_context( + tracking_disable=True).create({ + 'name': 'Customer partner', + }) + + cls.rule_model = cls.env['account.reconcile.rule'] + # Delete existing rules + cls.rule_model.search([]).unlink() + + # Creation operation template and rule + cls.operation = cls.env['account.reconcile.model'].create({ + 'name': 'Unittest Early Payment Discount', + 'label': 'Rounding', + 'amount_type': 'percentage', + 'amount': 100.0, + }) + cls.reconciliation_rule = cls.rule_model.create({ + 'name': 'Unittest Early Payment Discount', + 'rule_type': 'early_payment_discount', + 'operations': [(6, 0, (cls.operation.id, ))], + 'sequence': 1, + }) + # Accounts creation + account_model = cls.env['account.account'] + cls.account_early_payment = account_model.create({ + 'name': 'Unittest Account Early Payment Discount', + 'user_type_id': + cls.env.ref('account.data_account_type_expenses').id, + 'code': 'TEST4090', + 'reconcile': False, + }) + cls.account_sale = account_model.create({ + 'name': 'Unittest Account Sale', + 'user_type_id': + cls.env.ref('account.data_account_type_other_income').id, + 'code': 'TEST200000', + 'reconcile': False, + }) + cls.account_customer = account_model.create({ + 'code': 'TEST1100', + 'name': 'Customer account', + 'user_type_id': + cls.env.ref('account.data_account_type_receivable').id, + 'reconcile': True, + }) + cls.cash_journal = cls.env['account.journal'].create({ + 'name': 'Unittest Cash journal', + 'code': 'CASH', + 'type': 'cash', + }) + cls.sale_journal = cls.env['account.journal'].create({ + 'name': 'Unittest Customer Invoices', + 'code': 'INV', + 'type': 'sale', + }) + # Early payment discount payment term. + cls.payment_term = cls.env['account.payment.term'].create({ + 'name': '10 days 2% discount', + 'early_payment_discount': True, + 'epd_nb_days': 10, + 'epd_discount': 2, + }) + # Product and invoice with price = 1000 + product_test = cls.env['product.product'].create({ + 'name': 'Unittest product', + }) + cls.date_invoice = date(2016, 5, 10) + cls.invoice = cls.env['account.invoice'].create({ + 'name': "Test Customer Invoice", + 'date_invoice': cls.date_invoice, + 'account_id': cls.account_customer.id, + 'partner_id': cls.partner.id, + 'payment_term_id': cls.payment_term.id, + 'invoice_line_ids': [ + (0, 0, { + 'product_id': product_test.id, + 'account_id': cls.account_sale.id, + 'quantity': 1.0, + 'name': 'Unittest product 4', + 'price_unit': 1000.00, + }) + ] + }) + # Create move + debit_line_vals = { + 'name': '001', + 'invoice_id': cls.invoice.id, + 'account_id': cls.account_customer.id, + 'debit': 1000.0, + } + credit_line_vals = { + 'name': '001', + 'account_id': cls.account_sale.id, + 'credit': 1000.0, + } + cls.move = cls.env['account.move'].create({ + 'journal_id': cls.sale_journal.id, + 'line_ids': [(0, 0, debit_line_vals), (0, 0, credit_line_vals)], + }) + cls.debit_move = cls.move.line_ids.filtered( + lambda l: l.debit != 0.0 + ) + + def create_statement_line(self, amount, delta_days=0): + statement = self.env['account.bank.statement'].create({ + 'name': '/', + 'journal_id': self.cash_journal.id, + }) + + return self.env['account.bank.statement.line'].create({ + 'statement_id': statement.id, + 'name': '001', + 'amount': amount, + 'date': self.date_invoice + timedelta(days=delta_days), + }) + + def test_early_payment_discount(self): + # Balance = 0 + statement = self.create_statement_line(1000) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertFalse(rule) + + # Balance > 0 + statement = self.create_statement_line(1100) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertFalse(rule) + + # good date and amount in discount + statement = self.create_statement_line(990, delta_days=5) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertEqual(self.reconciliation_rule, rule) + + statement = self.create_statement_line(980, delta_days=10) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertEqual(self.reconciliation_rule, rule) + + # Good date but amount to low + statement = self.create_statement_line(970, delta_days=5) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertFalse(rule) + + # Amount good but date too late + statement = self.create_statement_line(985, delta_days=11) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertFalse(rule) + + def test_tolerance(self): + self.payment_term.epd_discount = 2.25 + self.payment_term.epd_tolerance = 0.5 + + statement = self.create_statement_line(977) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertEqual(self.reconciliation_rule, rule) + + self.payment_term.epd_tolerance = 0.4 + statement = self.create_statement_line(977) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertFalse(rule) + + def test_no_invoice(self): + self.debit_move.invoice_id = False + + statement = self.create_statement_line(990) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertFalse(rule) + + def test_no_discount_payment_term(self): + self.payment_term.early_payment_discount = False + + statement = self.create_statement_line(990) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertFalse(rule) + + def test_bad_rule_type(self): + self.reconciliation_rule.rule_type = "rounding" + + statement = self.create_statement_line(990) + rule = self.rule_model.find_first_rule(statement, self.debit_move) + self.assertFalse(rule) diff --git a/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml b/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml new file mode 100644 index 0000000000..e3791523b2 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml @@ -0,0 +1,15 @@ + + + + account.reconcile.rule.form + account.reconcile.rule + + + + + + + + + From 3eb72415a6e1d9ec4ff0e3992fde8a13695ea5ce Mon Sep 17 00:00:00 2001 From: Patrick Tombez Date: Thu, 28 Feb 2019 11:11:36 +0100 Subject: [PATCH 2/6] [MIG] account_reconcile_rule_early_payment_discount: Migration to 12.0 --- .../README.rst | 88 ++-- .../__init__.py | 3 - .../__manifest__.py | 2 +- .../readme/CONTRIBUTORS.rst | 2 + .../readme/DESCRIPTION.rst | 6 + .../readme/INSTALL.rst | 2 + .../readme/USAGE.rst | 29 ++ .../static/description/index.html | 453 ++++++++++++++++++ .../tests/__init__.py | 3 - .../tests/test_rule_early_payment_discount.py | 1 + 10 files changed, 553 insertions(+), 36 deletions(-) create mode 100644 account_reconcile_rule_early_payment_discount/readme/CONTRIBUTORS.rst create mode 100644 account_reconcile_rule_early_payment_discount/readme/DESCRIPTION.rst create mode 100644 account_reconcile_rule_early_payment_discount/readme/INSTALL.rst create mode 100644 account_reconcile_rule_early_payment_discount/readme/USAGE.rst create mode 100644 account_reconcile_rule_early_payment_discount/static/description/index.html diff --git a/account_reconcile_rule_early_payment_discount/README.rst b/account_reconcile_rule_early_payment_discount/README.rst index c23675cfe5..5812e90ce4 100644 --- a/account_reconcile_rule_early_payment_discount/README.rst +++ b/account_reconcile_rule_early_payment_discount/README.rst @@ -1,10 +1,29 @@ -.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png - :target: https://www.gnu.org/licenses/agpl - :alt: License: AGPL-3 - -================================================= -Account Reconcile Rule for Early Payment Discount -================================================= +=========================================== +Early Payment Discount Reconciliation Rules +=========================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/12.0/account_reconcile_rule_early_payment_discount + :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-12-0/account-reconcile-12-0-account_reconcile_rule_early_payment_discount + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/98/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| Extends the module *Account Reconcile Rules* with a new rule type : **Early Payment Discount**. @@ -13,8 +32,19 @@ It allows to automatically create a write-off entry for the amount paid by the customers when they received dunning fees (using the **Account Credit Control** module). +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +This module only works with the ``account_early_payment_discount`` +module in the project: https://github.com/OCA/account-payment + Usage ------ +===== 1. Look at ``account_early_payment_discount`` module in the project: https://github.com/OCA/account-payment @@ -25,16 +55,16 @@ to configure payment terms with an early payment discount. 2. Configure some ``Reconciliation Models`` in ``Invoicing > Dashboard > Bank Card > Reconciliation Models`` -.. image:: docs/operation_rule_menu.png +.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/operation_rule_menu.png -.. image:: docs/rule_model.png +.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/rule_model.png ----- 3. Then configure a new Reconciliation Rule in ``Invoicing > Dashboard > Bank Card > Reconciliation Rules`` -.. image:: docs/rule.png +.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/rule.png ----- @@ -44,45 +74,45 @@ the remaining balance respects the early payment discount rules (discount percentage and payment delay). If true, the remaining balance will be automatically reconciled in the configured account. -.. image:: docs/reconcilation.png +.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/reconcilation.png +Bug Tracker +=========== -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/98/11.0 +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 smashing it by providing a detailed and welcomed +`feedback `_. -Dependencies ------------- - -This module only works with the ``account_early_payment_discount`` -module in the project: https://github.com/OCA/account-payment +Do not contact contributors directly about support or help with technical issues. Credits ======= -Images ------- +Authors +~~~~~~~ -* Odoo Community Association: `Icon `_. +* Camptocamp Contributors ------------- +~~~~~~~~~~~~ * Cyril Gaudin * Akim Juillerat +Maintainers +~~~~~~~~~~~ -Maintainer ----------- +This module is maintained by the OCA. .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association :target: https://odoo-community.org -This module is maintained by the OCA. - 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. -To contribute to this module, please visit https://odoo-community.org. +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_reconcile_rule_early_payment_discount/__init__.py b/account_reconcile_rule_early_payment_discount/__init__.py index f506574297..0650744f6b 100644 --- a/account_reconcile_rule_early_payment_discount/__init__.py +++ b/account_reconcile_rule_early_payment_discount/__init__.py @@ -1,4 +1 @@ -# Copyright 2016 Cyril Gaudin (Camptocamp) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). - from . import models diff --git a/account_reconcile_rule_early_payment_discount/__manifest__.py b/account_reconcile_rule_early_payment_discount/__manifest__.py index da55814f28..175d6bfd64 100644 --- a/account_reconcile_rule_early_payment_discount/__manifest__.py +++ b/account_reconcile_rule_early_payment_discount/__manifest__.py @@ -3,7 +3,7 @@ { 'name': 'Early Payment Discount Reconciliation Rules', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'author': 'Camptocamp, Odoo Community Association (OCA)', 'license': 'AGPL-3', 'category': 'Accounting & Finance', diff --git a/account_reconcile_rule_early_payment_discount/readme/CONTRIBUTORS.rst b/account_reconcile_rule_early_payment_discount/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..fa3aa14db9 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Cyril Gaudin +* Akim Juillerat diff --git a/account_reconcile_rule_early_payment_discount/readme/DESCRIPTION.rst b/account_reconcile_rule_early_payment_discount/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..9c547f322e --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/readme/DESCRIPTION.rst @@ -0,0 +1,6 @@ +Extends the module *Account Reconcile Rules* with a new rule type : +**Early Payment Discount**. + +It allows to automatically create a write-off +entry for the amount paid by the customers when they received dunning +fees (using the **Account Credit Control** module). diff --git a/account_reconcile_rule_early_payment_discount/readme/INSTALL.rst b/account_reconcile_rule_early_payment_discount/readme/INSTALL.rst new file mode 100644 index 0000000000..d87de5a501 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/readme/INSTALL.rst @@ -0,0 +1,2 @@ +This module only works with the ``account_early_payment_discount`` +module in the project: https://github.com/OCA/account-payment diff --git a/account_reconcile_rule_early_payment_discount/readme/USAGE.rst b/account_reconcile_rule_early_payment_discount/readme/USAGE.rst new file mode 100644 index 0000000000..439f56f9d7 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/readme/USAGE.rst @@ -0,0 +1,29 @@ +1. Look at ``account_early_payment_discount`` +module in the project: https://github.com/OCA/account-payment +to configure payment terms with an early payment discount. + +----- + +2. Configure some ``Reconciliation Models`` in +``Invoicing > Dashboard > Bank Card > Reconciliation Models`` + +.. image:: docs/operation_rule_menu.png + +.. image:: docs/rule_model.png + +----- + +3. Then configure a new Reconciliation Rule in +``Invoicing > Dashboard > Bank Card > Reconciliation Rules`` + +.. image:: docs/rule.png + +----- + +4. Then during reconciliation, if a bank statement line matches an invoice which has a +payment term configured with early payment discount, this rule will verify if +the remaining balance respects the early payment discount rules +(discount percentage and payment delay). +If true, the remaining balance will be automatically reconciled in the configured account. + +.. image:: docs/reconcilation.png diff --git a/account_reconcile_rule_early_payment_discount/static/description/index.html b/account_reconcile_rule_early_payment_discount/static/description/index.html new file mode 100644 index 0000000000..02fbd81ab9 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/static/description/index.html @@ -0,0 +1,453 @@ + + + + + + +Early Payment Discount Reconciliation Rules + + + +
+

Early Payment Discount Reconciliation Rules

+ + +

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

+

Extends the module Account Reconcile Rules with a new rule type : +Early Payment Discount.

+

It allows to automatically create a write-off +entry for the amount paid by the customers when they received dunning +fees (using the Account Credit Control module).

+

Table of contents

+ +
+

Installation

+

This module only works with the account_early_payment_discount +module in the project: https://github.com/OCA/account-payment

+
+
+

Usage

+

1. Look at account_early_payment_discount +module in the project: https://github.com/OCA/account-payment +to configure payment terms with an early payment discount.

+
+

2. Configure some Reconciliation Models in +Invoicing > Dashboard > Bank Card > Reconciliation Models

+https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/operation_rule_menu.png +https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/rule_model.png +
+

3. Then configure a new Reconciliation Rule in +Invoicing > Dashboard > Bank Card > Reconciliation Rules

+https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/rule.png +
+

4. Then during reconciliation, if a bank statement line matches an invoice which has a +payment term configured with early payment discount, this rule will verify if +the remaining balance respects the early payment discount rules +(discount percentage and payment delay). +If true, the remaining balance will be automatically reconciled in the configured account.

+https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/reconcilation.png +
+
+

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 smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Camptocamp
  • +
+
+ +
+

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_reconcile_rule_early_payment_discount/tests/__init__.py b/account_reconcile_rule_early_payment_discount/tests/__init__.py index d7770592c7..fe21276d7e 100644 --- a/account_reconcile_rule_early_payment_discount/tests/__init__.py +++ b/account_reconcile_rule_early_payment_discount/tests/__init__.py @@ -1,4 +1 @@ -# Copyright 2016 Cyril Gaudin (Camptocamp) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). - from . import test_rule_early_payment_discount diff --git a/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py b/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py index 6c625dc85c..4b245ef261 100644 --- a/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py +++ b/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py @@ -1,5 +1,6 @@ # Copyright 2016 Cyril Gaudin (Camptocamp) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + from datetime import date, timedelta from odoo.tests.common import SavepointCase From 895fb74e4044eea55994f8dbf856bee05f3b9e2f Mon Sep 17 00:00:00 2001 From: Patrick Tombez Date: Thu, 28 Feb 2019 11:22:45 +0100 Subject: [PATCH 3/6] Fix tests --- .../tests/test_rule_early_payment_discount.py | 4 +++- .../views/account_reconcile_rule_view.xml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py b/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py index 4b245ef261..21ccc3465e 100644 --- a/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py +++ b/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py @@ -3,9 +3,11 @@ from datetime import date, timedelta -from odoo.tests.common import SavepointCase +from odoo.tests.common import SavepointCase, at_install, post_install +@at_install(False) +@post_install(True) class TestEarlyPaymentDiscountRule(SavepointCase): @classmethod diff --git a/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml b/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml index e3791523b2..bf2f1b6724 100644 --- a/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml +++ b/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml @@ -7,7 +7,7 @@ - From d333013a3e9f1002d8c264e4680ce8a679501c82 Mon Sep 17 00:00:00 2001 From: Akim Juillerat Date: Thu, 21 Mar 2019 14:49:29 +0100 Subject: [PATCH 4/6] Improve test --- .../tests/test_rule_early_payment_discount.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py b/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py index 21ccc3465e..32b1910b9d 100644 --- a/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py +++ b/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py @@ -4,6 +4,7 @@ from datetime import date, timedelta from odoo.tests.common import SavepointCase, at_install, post_install +from odoo.tools import mute_logger @at_install(False) @@ -13,16 +14,17 @@ class TestEarlyPaymentDiscountRule(SavepointCase): @classmethod def setUpClass(cls): super().setUpClass() + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) # Customer Partner - cls.partner = cls.env['res.partner'].with_context( - tracking_disable=True).create({ - 'name': 'Customer partner', - }) + cls.partner = cls.env['res.partner'].create({ + 'name': 'Customer partner', + }) cls.rule_model = cls.env['account.reconcile.rule'] # Delete existing rules - cls.rule_model.search([]).unlink() + with mute_logger('odoo.models.unlink'): + cls.rule_model.search([]).unlink() # Creation operation template and rule cls.operation = cls.env['account.reconcile.model'].create({ From 57119fc392c9983fae4b35d4d9d86a8a72ef2514 Mon Sep 17 00:00:00 2001 From: Tran Thanh Phuc Date: Mon, 9 Nov 2020 23:18:43 +0700 Subject: [PATCH 5/6] [IMP] account_reconcile_rule_early_payment_discount: black, isort, prettier --- .../__manifest__.py | 25 +-- .../models/account_reconcile_rule.py | 19 +- .../tests/test_rule_early_payment_discount.py | 207 +++++++++--------- .../views/account_reconcile_rule_view.xml | 17 +- 4 files changed, 141 insertions(+), 127 deletions(-) diff --git a/account_reconcile_rule_early_payment_discount/__manifest__.py b/account_reconcile_rule_early_payment_discount/__manifest__.py index 175d6bfd64..6a72b59d95 100644 --- a/account_reconcile_rule_early_payment_discount/__manifest__.py +++ b/account_reconcile_rule_early_payment_discount/__manifest__.py @@ -2,19 +2,14 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { - 'name': 'Early Payment Discount Reconciliation Rules', - 'version': '12.0.1.0.0', - 'author': 'Camptocamp, Odoo Community Association (OCA)', - 'license': 'AGPL-3', - 'category': 'Accounting & Finance', - 'depends': [ - 'account_reconcile_rule', - 'account_early_payment_discount', - ], - 'website': 'https://github.com/OCA/account-reconcile', - 'data': [ - 'views/account_reconcile_rule_view.xml', - ], - 'installable': True, - 'auto_install': True, + "name": "Early Payment Discount Reconciliation Rules", + "version": "12.0.1.0.0", + "author": "Camptocamp, Odoo Community Association (OCA)", + "license": "AGPL-3", + "category": "Accounting & Finance", + "depends": ["account_reconcile_rule", "account_early_payment_discount",], + "website": "https://github.com/OCA/account-reconcile", + "data": ["views/account_reconcile_rule_view.xml",], + "installable": True, + "auto_install": True, } diff --git a/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py b/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py index f342a4f303..31587ba2bc 100644 --- a/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py +++ b/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py @@ -7,15 +7,14 @@ class AccountReconcileRule(models.Model): - _inherit = 'account.reconcile.rule' + _inherit = "account.reconcile.rule" rule_type = fields.Selection( - selection_add=[('early_payment_discount', 'Early Payment Discount')], + selection_add=[("early_payment_discount", "Early Payment Discount")], ) @api.multi - def _is_valid_early_payment_discount(self, statement_line, move_lines, - balance): + def _is_valid_early_payment_discount(self, statement_line, move_lines, balance): """Return True if *move_lines* are linked to only one invoice with a payment term which has an early payment discount and if *balance* and the *statement_line* date match the @@ -30,7 +29,7 @@ def _is_valid_early_payment_discount(self, statement_line, move_lines, if not move_lines or balance >= 0: return False else: - invoice = move_lines.mapped('invoice_id') + invoice = move_lines.mapped("invoice_id") if len(invoice) != 1: return False @@ -42,8 +41,7 @@ def _is_valid_early_payment_discount(self, statement_line, move_lines, ) @api.multi - def _check_early_payment_discount(self, statement_line, invoice, - balance): + def _check_early_payment_discount(self, statement_line, invoice, balance): """ Return True if *balance* and the *statement_line* date match the early payment discount rules for *invoice*. @@ -69,7 +67,10 @@ def _check_early_payment_discount(self, statement_line, invoice, return self._between_with_bounds( # Balance is negative in our case - 0, -balance, discount_balance, statement_line.currency_for_rules() + 0, + -balance, + discount_balance, + statement_line.currency_for_rules(), ) @api.multi @@ -77,7 +78,7 @@ def is_valid(self, statement_line, move_lines, balance): """ Override account.operation.rule is_valid for early_payment_discount case """ - if self.rule_type == 'early_payment_discount': + if self.rule_type == "early_payment_discount": return self._is_valid_early_payment_discount( statement_line, move_lines, balance ) diff --git a/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py b/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py index 32b1910b9d..2ff88d7880 100644 --- a/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py +++ b/account_reconcile_rule_early_payment_discount/tests/test_rule_early_payment_discount.py @@ -10,128 +10,137 @@ @at_install(False) @post_install(True) class TestEarlyPaymentDiscountRule(SavepointCase): - @classmethod def setUpClass(cls): super().setUpClass() cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) # Customer Partner - cls.partner = cls.env['res.partner'].create({ - 'name': 'Customer partner', - }) + cls.partner = cls.env["res.partner"].create({"name": "Customer partner",}) - cls.rule_model = cls.env['account.reconcile.rule'] + cls.rule_model = cls.env["account.reconcile.rule"] # Delete existing rules - with mute_logger('odoo.models.unlink'): + with mute_logger("odoo.models.unlink"): cls.rule_model.search([]).unlink() # Creation operation template and rule - cls.operation = cls.env['account.reconcile.model'].create({ - 'name': 'Unittest Early Payment Discount', - 'label': 'Rounding', - 'amount_type': 'percentage', - 'amount': 100.0, - }) - cls.reconciliation_rule = cls.rule_model.create({ - 'name': 'Unittest Early Payment Discount', - 'rule_type': 'early_payment_discount', - 'operations': [(6, 0, (cls.operation.id, ))], - 'sequence': 1, - }) + cls.operation = cls.env["account.reconcile.model"].create( + { + "name": "Unittest Early Payment Discount", + "label": "Rounding", + "amount_type": "percentage", + "amount": 100.0, + } + ) + cls.reconciliation_rule = cls.rule_model.create( + { + "name": "Unittest Early Payment Discount", + "rule_type": "early_payment_discount", + "operations": [(6, 0, (cls.operation.id,))], + "sequence": 1, + } + ) # Accounts creation - account_model = cls.env['account.account'] - cls.account_early_payment = account_model.create({ - 'name': 'Unittest Account Early Payment Discount', - 'user_type_id': - cls.env.ref('account.data_account_type_expenses').id, - 'code': 'TEST4090', - 'reconcile': False, - }) - cls.account_sale = account_model.create({ - 'name': 'Unittest Account Sale', - 'user_type_id': - cls.env.ref('account.data_account_type_other_income').id, - 'code': 'TEST200000', - 'reconcile': False, - }) - cls.account_customer = account_model.create({ - 'code': 'TEST1100', - 'name': 'Customer account', - 'user_type_id': - cls.env.ref('account.data_account_type_receivable').id, - 'reconcile': True, - }) - cls.cash_journal = cls.env['account.journal'].create({ - 'name': 'Unittest Cash journal', - 'code': 'CASH', - 'type': 'cash', - }) - cls.sale_journal = cls.env['account.journal'].create({ - 'name': 'Unittest Customer Invoices', - 'code': 'INV', - 'type': 'sale', - }) + account_model = cls.env["account.account"] + cls.account_early_payment = account_model.create( + { + "name": "Unittest Account Early Payment Discount", + "user_type_id": cls.env.ref("account.data_account_type_expenses").id, + "code": "TEST4090", + "reconcile": False, + } + ) + cls.account_sale = account_model.create( + { + "name": "Unittest Account Sale", + "user_type_id": cls.env.ref( + "account.data_account_type_other_income" + ).id, + "code": "TEST200000", + "reconcile": False, + } + ) + cls.account_customer = account_model.create( + { + "code": "TEST1100", + "name": "Customer account", + "user_type_id": cls.env.ref("account.data_account_type_receivable").id, + "reconcile": True, + } + ) + cls.cash_journal = cls.env["account.journal"].create( + {"name": "Unittest Cash journal", "code": "CASH", "type": "cash",} + ) + cls.sale_journal = cls.env["account.journal"].create( + {"name": "Unittest Customer Invoices", "code": "INV", "type": "sale",} + ) # Early payment discount payment term. - cls.payment_term = cls.env['account.payment.term'].create({ - 'name': '10 days 2% discount', - 'early_payment_discount': True, - 'epd_nb_days': 10, - 'epd_discount': 2, - }) + cls.payment_term = cls.env["account.payment.term"].create( + { + "name": "10 days 2% discount", + "early_payment_discount": True, + "epd_nb_days": 10, + "epd_discount": 2, + } + ) # Product and invoice with price = 1000 - product_test = cls.env['product.product'].create({ - 'name': 'Unittest product', - }) + product_test = cls.env["product.product"].create({"name": "Unittest product",}) cls.date_invoice = date(2016, 5, 10) - cls.invoice = cls.env['account.invoice'].create({ - 'name': "Test Customer Invoice", - 'date_invoice': cls.date_invoice, - 'account_id': cls.account_customer.id, - 'partner_id': cls.partner.id, - 'payment_term_id': cls.payment_term.id, - 'invoice_line_ids': [ - (0, 0, { - 'product_id': product_test.id, - 'account_id': cls.account_sale.id, - 'quantity': 1.0, - 'name': 'Unittest product 4', - 'price_unit': 1000.00, - }) - ] - }) + cls.invoice = cls.env["account.invoice"].create( + { + "name": "Test Customer Invoice", + "date_invoice": cls.date_invoice, + "account_id": cls.account_customer.id, + "partner_id": cls.partner.id, + "payment_term_id": cls.payment_term.id, + "invoice_line_ids": [ + ( + 0, + 0, + { + "product_id": product_test.id, + "account_id": cls.account_sale.id, + "quantity": 1.0, + "name": "Unittest product 4", + "price_unit": 1000.00, + }, + ) + ], + } + ) # Create move debit_line_vals = { - 'name': '001', - 'invoice_id': cls.invoice.id, - 'account_id': cls.account_customer.id, - 'debit': 1000.0, + "name": "001", + "invoice_id": cls.invoice.id, + "account_id": cls.account_customer.id, + "debit": 1000.0, } credit_line_vals = { - 'name': '001', - 'account_id': cls.account_sale.id, - 'credit': 1000.0, + "name": "001", + "account_id": cls.account_sale.id, + "credit": 1000.0, } - cls.move = cls.env['account.move'].create({ - 'journal_id': cls.sale_journal.id, - 'line_ids': [(0, 0, debit_line_vals), (0, 0, credit_line_vals)], - }) - cls.debit_move = cls.move.line_ids.filtered( - lambda l: l.debit != 0.0 + cls.move = cls.env["account.move"].create( + { + "journal_id": cls.sale_journal.id, + "line_ids": [(0, 0, debit_line_vals), (0, 0, credit_line_vals)], + } ) + cls.debit_move = cls.move.line_ids.filtered(lambda l: l.debit != 0.0) def create_statement_line(self, amount, delta_days=0): - statement = self.env['account.bank.statement'].create({ - 'name': '/', - 'journal_id': self.cash_journal.id, - }) - - return self.env['account.bank.statement.line'].create({ - 'statement_id': statement.id, - 'name': '001', - 'amount': amount, - 'date': self.date_invoice + timedelta(days=delta_days), - }) + statement = self.env["account.bank.statement"].create( + {"name": "/", "journal_id": self.cash_journal.id,} + ) + + return self.env["account.bank.statement.line"].create( + { + "statement_id": statement.id, + "name": "001", + "amount": amount, + "date": self.date_invoice + timedelta(days=delta_days), + } + ) def test_early_payment_discount(self): # Balance = 0 diff --git a/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml b/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml index bf2f1b6724..b779408dcc 100644 --- a/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml +++ b/account_reconcile_rule_early_payment_discount/views/account_reconcile_rule_view.xml @@ -1,13 +1,22 @@ - + account.reconcile.rule.form account.reconcile.rule - + - - From 2973f46bb5a06efb9920cc1b21b7d83d94768c32 Mon Sep 17 00:00:00 2001 From: Tran Thanh Phuc Date: Wed, 11 Nov 2020 21:50:10 +0700 Subject: [PATCH 6/6] [MIG] account_reconcile_rule_early_payment_discount: Migration to 13.0 --- .../README.rst | 26 +++++++++----- .../__manifest__.py | 6 ++-- .../models/account_reconcile_rule.py | 15 ++++---- .../readme/CONTRIBUTORS.rst | 1 + .../readme/CREDITS.rst | 3 ++ .../static/description/index.html | 29 +++++++++------ .../tests/test_rule_early_payment_discount.py | 36 ++++++++++--------- oca_dependencies.txt | 2 ++ 8 files changed, 70 insertions(+), 48 deletions(-) create mode 100644 account_reconcile_rule_early_payment_discount/readme/CREDITS.rst diff --git a/account_reconcile_rule_early_payment_discount/README.rst b/account_reconcile_rule_early_payment_discount/README.rst index 5812e90ce4..00aeecd870 100644 --- a/account_reconcile_rule_early_payment_discount/README.rst +++ b/account_reconcile_rule_early_payment_discount/README.rst @@ -14,13 +14,13 @@ Early Payment Discount Reconciliation Rules :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/12.0/account_reconcile_rule_early_payment_discount + :target: https://github.com/OCA/account-reconcile/tree/13.0/account_reconcile_rule_early_payment_discount :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-12-0/account-reconcile-12-0-account_reconcile_rule_early_payment_discount + :target: https://translation.odoo-community.org/projects/account-reconcile-13-0/account-reconcile-13-0-account_reconcile_rule_early_payment_discount :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/98/12.0 + :target: https://runbot.odoo-community.org/runbot/98/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -55,16 +55,16 @@ to configure payment terms with an early payment discount. 2. Configure some ``Reconciliation Models`` in ``Invoicing > Dashboard > Bank Card > Reconciliation Models`` -.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/operation_rule_menu.png +.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/13.0/account_reconcile_rule_early_payment_discount/docs/operation_rule_menu.png -.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/rule_model.png +.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/13.0/account_reconcile_rule_early_payment_discount/docs/rule_model.png ----- 3. Then configure a new Reconciliation Rule in ``Invoicing > Dashboard > Bank Card > Reconciliation Rules`` -.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/rule.png +.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/13.0/account_reconcile_rule_early_payment_discount/docs/rule.png ----- @@ -74,7 +74,7 @@ the remaining balance respects the early payment discount rules (discount percentage and payment delay). If true, the remaining balance will be automatically reconciled in the configured account. -.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/12.0/account_reconcile_rule_early_payment_discount/docs/reconcilation.png +.. image:: https://raw.githubusercontent.com/OCA/account-reconcile/13.0/account_reconcile_rule_early_payment_discount/docs/reconcilation.png Bug Tracker =========== @@ -82,7 +82,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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -99,6 +99,14 @@ Contributors * Cyril Gaudin * Akim Juillerat +* Dung Tran + +Other credits +~~~~~~~~~~~~~ + +The development of this module has been financially supported by: + +* Camptocamp Maintainers ~~~~~~~~~~~ @@ -113,6 +121,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_reconcile_rule_early_payment_discount/__manifest__.py b/account_reconcile_rule_early_payment_discount/__manifest__.py index 6a72b59d95..842bd02ef1 100644 --- a/account_reconcile_rule_early_payment_discount/__manifest__.py +++ b/account_reconcile_rule_early_payment_discount/__manifest__.py @@ -3,13 +3,13 @@ { "name": "Early Payment Discount Reconciliation Rules", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "author": "Camptocamp, Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Accounting & Finance", - "depends": ["account_reconcile_rule", "account_early_payment_discount",], + "depends": ["account_reconcile_rule", "account_early_payment_discount"], "website": "https://github.com/OCA/account-reconcile", - "data": ["views/account_reconcile_rule_view.xml",], + "data": ["views/account_reconcile_rule_view.xml"], "installable": True, "auto_install": True, } diff --git a/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py b/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py index 31587ba2bc..68f1978fd6 100644 --- a/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py +++ b/account_reconcile_rule_early_payment_discount/models/account_reconcile_rule.py @@ -3,7 +3,7 @@ from datetime import timedelta -from odoo import api, fields, models +from odoo import fields, models class AccountReconcileRule(models.Model): @@ -13,7 +13,6 @@ class AccountReconcileRule(models.Model): selection_add=[("early_payment_discount", "Early Payment Discount")], ) - @api.multi def _is_valid_early_payment_discount(self, statement_line, move_lines, balance): """Return True if *move_lines* are linked to only one invoice with a payment term which has an early payment discount @@ -29,30 +28,29 @@ def _is_valid_early_payment_discount(self, statement_line, move_lines, balance): if not move_lines or balance >= 0: return False else: - invoice = move_lines.mapped("invoice_id") + invoice = move_lines.mapped("move_id") if len(invoice) != 1: return False - elif not invoice.payment_term_id.early_payment_discount: + elif not invoice.invoice_payment_term_id.early_payment_discount: return False else: return self._check_early_payment_discount( statement_line, invoice, balance ) - @api.multi def _check_early_payment_discount(self, statement_line, invoice, balance): """ Return True if *balance* and the *statement_line* date match the early payment discount rules for *invoice*. :type statement_line: AccountBankStatementLine - :type invoice: AccountInvoice + :type invoice: AccountMove :type balance: float :rtype: bool """ - payment_term = invoice.payment_term_id + payment_term = invoice.invoice_payment_term_id - max_date = fields.Date.from_string(invoice.date_invoice) + timedelta( + max_date = fields.Date.from_string(invoice.invoice_date) + timedelta( days=payment_term.epd_nb_days ) @@ -73,7 +71,6 @@ def _check_early_payment_discount(self, statement_line, invoice, balance): statement_line.currency_for_rules(), ) - @api.multi def is_valid(self, statement_line, move_lines, balance): """ Override account.operation.rule is_valid for early_payment_discount case diff --git a/account_reconcile_rule_early_payment_discount/readme/CONTRIBUTORS.rst b/account_reconcile_rule_early_payment_discount/readme/CONTRIBUTORS.rst index fa3aa14db9..ebea888115 100644 --- a/account_reconcile_rule_early_payment_discount/readme/CONTRIBUTORS.rst +++ b/account_reconcile_rule_early_payment_discount/readme/CONTRIBUTORS.rst @@ -1,2 +1,3 @@ * Cyril Gaudin * Akim Juillerat +* Dung Tran diff --git a/account_reconcile_rule_early_payment_discount/readme/CREDITS.rst b/account_reconcile_rule_early_payment_discount/readme/CREDITS.rst new file mode 100644 index 0000000000..f5cc070c78 --- /dev/null +++ b/account_reconcile_rule_early_payment_discount/readme/CREDITS.rst @@ -0,0 +1,3 @@ +The development of this module has been financially supported by: + +* Camptocamp diff --git a/account_reconcile_rule_early_payment_discount/static/description/index.html b/account_reconcile_rule_early_payment_discount/static/description/index.html index 02fbd81ab9..e3ec406ff7 100644 --- a/account_reconcile_rule_early_payment_discount/static/description/index.html +++ b/account_reconcile_rule_early_payment_discount/static/description/index.html @@ -3,7 +3,7 @@ - + Early Payment Discount Reconciliation Rules