details:   https://code.tryton.org/tryton/commit/8423a14bfd14
branch:    default
user:      Cédric Krier <[email protected]>
date:      Fri Sep 04 22:09:07 2026 +0200
description:
        Permit the selection of companies for which to create dunnings

        Closes #15066
diffstat:

 modules/account_dunning/CHANGELOG                          |   1 +
 modules/account_dunning/dunning.py                         |  19 +++++++++++++-
 modules/account_dunning/view/dunning_create_start_form.xml |   2 +
 3 files changed, 21 insertions(+), 1 deletions(-)

diffs (61 lines):

diff -r 98ec77e46af7 -r 8423a14bfd14 modules/account_dunning/CHANGELOG
--- a/modules/account_dunning/CHANGELOG Fri Sep 04 22:07:25 2026 +0200
+++ b/modules/account_dunning/CHANGELOG Fri Sep 04 22:09:07 2026 +0200
@@ -1,3 +1,4 @@
+* Permit the selection of companies for which to create dunnings
 
 Version 8.0.0 - 2026-04-20
 --------------------------
diff -r 98ec77e46af7 -r 8423a14bfd14 modules/account_dunning/dunning.py
--- a/modules/account_dunning/dunning.py        Fri Sep 04 22:07:25 2026 +0200
+++ b/modules/account_dunning/dunning.py        Fri Sep 04 22:09:07 2026 +0200
@@ -335,12 +335,22 @@
     __name__ = 'account.dunning.create.start'
     date = fields.Date('Date', required=True,
         help="Create dunning up to this date.")
+    companies = fields.Many2Many(
+        'company.company', None, None, "Companies", required=True,
+        domain=[
+            ('id', 'in', Eval('context', {}).get('companies', [])),
+            ],
+        help="Limit to lines from these companies.")
 
     @staticmethod
     def default_date():
         Date = Pool().get('ir.date')
         return Date.today()
 
+    @classmethod
+    def default_companies(cls):
+        return Transaction().context.get('companies')
+
 
 class CreateDunning(Wizard):
     __name__ = 'account.dunning.create'
@@ -354,7 +364,14 @@
     def do_create_(self, action):
         pool = Pool()
         Dunning = pool.get('account.dunning')
-        Dunning.generate_dunnings(date=self.start.date)
+        User = pool.get('res.user')
+        transaction = Transaction()
+
+        companies = {c.id for c in self.start.companies}
+        companies &= set(User.get_companies())
+
+        with transaction.set_context(_companies=companies):
+            Dunning.generate_dunnings(date=self.start.date)
         return action, {}
 
 
diff -r 98ec77e46af7 -r 8423a14bfd14 
modules/account_dunning/view/dunning_create_start_form.xml
--- a/modules/account_dunning/view/dunning_create_start_form.xml        Fri Sep 
04 22:07:25 2026 +0200
+++ b/modules/account_dunning/view/dunning_create_start_form.xml        Fri Sep 
04 22:09:07 2026 +0200
@@ -6,5 +6,7 @@
     <group col="2" xexpand="1" id="create_date">
         <label string="Create Dunning for date" id="create"/>
         <field name="date"/>
+
+        <field name="companies" colspan="2"/>
     </group>
 </form>

Reply via email to