Sergi Almacellas Abellana pushed to branch branch/default at Tryton / Tryton
Commits: 5e030b91 by Sergi Almacellas Abellana at 2023-01-02T16:01:13+01:00 Skip blocked payments when creating direct debits Closes #11983 - - - - - 3 changed files: - modules/account_payment/CHANGELOG - modules/account_payment/account.py - + modules/account_payment/tests/scenario_account_payment_blocked_direct_debit.rst Changes: ===================================== modules/account_payment/CHANGELOG ===================================== @@ -1,3 +1,5 @@ +* Skip blocked payments when creating direct debits + Version 6.6.0 - 2022-10-31 -------------------------- * Bug fixes (see mercurial logs for details) ===================================== modules/account_payment/account.py ===================================== @@ -200,6 +200,7 @@ ('credit', '<', 0), ], ('maturity_date', '<=', date), + ('payment_blocked', '!=', True), ] @classmethod ===================================== modules/account_payment/tests/scenario_account_payment_blocked_direct_debit.rst ===================================== @@ -0,0 +1,88 @@ +===================================== +Payment Blocked Direct Debit Scenario +===================================== + +Imports:: + + >>> import datetime as dt + >>> from decimal import Decimal + + >>> from proteus import Model, Wizard + >>> from trytond.tests.tools import activate_modules + >>> from trytond.modules.company.tests.tools import ( + ... create_company, get_company) + >>> from trytond.modules.account.tests.tools import ( + ... create_fiscalyear, create_chart, get_accounts) + + >>> today = dt.date.today() + +Activate modules:: + + >>> config = activate_modules('account_payment') + + >>> Journal = Model.get('account.journal') + >>> Line = Model.get('account.move.line') + >>> Move = Model.get('account.move') + >>> Party = Model.get('party.party') + >>> Payment = Model.get('account.payment') + >>> PaymentJournal = Model.get('account.payment.journal') + +Create company:: + + >>> _ = create_company() + >>> company = get_company() + +Create fiscal year:: + + >>> fiscalyear = create_fiscalyear(company) + >>> fiscalyear.click('create_period') + +Create chart of accounts:: + + >>> _ = create_chart(company) + >>> accounts = get_accounts(company) + + >>> revnue_journal, = Journal.find([('code', '=', 'REV')]) + +Create payment journal:: + + >>> payment_journal = PaymentJournal( + ... name="Manual", process_method='manual') + >>> payment_journal.save() + +Create parties:: + + >>> customer = Party(name="Customer") + >>> _ = customer.reception_direct_debits.new(journal=payment_journal) + >>> customer.save() + +Create receivable moves:: + + >>> move = Move() + >>> move.journal = revnue_journal + >>> line = move.lines.new( + ... account=accounts['receivable'], party=customer, + ... debit=Decimal('100.00'), maturity_date=today) + >>> line = move.lines.new( + ... account=accounts['revenue'], + ... credit=Decimal('100.00')) + >>> move.click('post') + +Direct debit is not created when payment blocked:: + + >>> line, = Line.find([('party', '=', customer.id)]) + >>> line.click('payment_block') + >>> create_direct_debit = Wizard('account.move.line.create_direct_debit') + >>> create_direct_debit.form.date = today + >>> create_direct_debit.execute('create_') + >>> len(Payment.find([])) + 0 + +Direct debit is created when payment is unblocked:: + + >>> line.click('payment_unblock') + >>> create_direct_debit = Wizard('account.move.line.create_direct_debit') + >>> create_direct_debit.form.date = today + >>> create_direct_debit.execute('create_') + >>> len(Payment.find([])) + 1 View it on Heptapod: https://foss.heptapod.net/tryton/tryton/-/commit/5e030b91f97ff38783aabf3820313f5a1730f0f2 -- View it on Heptapod: https://foss.heptapod.net/tryton/tryton/-/commit/5e030b91f97ff38783aabf3820313f5a1730f0f2 You're receiving this email because of your account on foss.heptapod.net.