odoo-addon-account-credit-control 17.0.2.1.0.1__py3-none-any.whl → 17.0.2.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/account_credit_control/README.rst +1 -1
- odoo/addons/account_credit_control/__manifest__.py +1 -1
- odoo/addons/account_credit_control/i18n/account_credit_control.pot +22 -13
- odoo/addons/account_credit_control/models/credit_control_line.py +0 -24
- odoo/addons/account_credit_control/models/credit_control_policy.py +55 -9
- odoo/addons/account_credit_control/models/res_config_settings.py +6 -0
- odoo/addons/account_credit_control/static/description/index.html +1 -1
- odoo/addons/account_credit_control/tests/test_credit_control_run.py +35 -0
- odoo/addons/account_credit_control/views/credit_control_line.xml +13 -24
- odoo/addons/account_credit_control/views/credit_control_policy.xml +79 -62
- odoo/addons/account_credit_control/views/res_config_settings_view.xml +8 -0
- odoo/addons/account_credit_control/views/res_partner.xml +1 -4
- {odoo_addon_account_credit_control-17.0.2.1.0.1.dist-info → odoo_addon_account_credit_control-17.0.2.2.0.dist-info}/METADATA +2 -2
- {odoo_addon_account_credit_control-17.0.2.1.0.1.dist-info → odoo_addon_account_credit_control-17.0.2.2.0.dist-info}/RECORD +16 -16
- {odoo_addon_account_credit_control-17.0.2.1.0.1.dist-info → odoo_addon_account_credit_control-17.0.2.2.0.dist-info}/WHEEL +0 -0
- {odoo_addon_account_credit_control-17.0.2.1.0.1.dist-info → odoo_addon_account_credit_control-17.0.2.2.0.dist-info}/top_level.txt +0 -0
|
@@ -7,7 +7,7 @@ Account Credit Control
|
|
|
7
7
|
!! This file is generated by oca-gen-addon-readme !!
|
|
8
8
|
!! changes will be overwritten. !!
|
|
9
9
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
10
|
-
!! source digest: sha256:
|
|
10
|
+
!! source digest: sha256:8d227f945da4773a09a1870bf1a39d6b943f789c4e1dc9cd3c396f12b481d985
|
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
12
12
|
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -202,6 +202,28 @@ msgstr ""
|
|
|
202
202
|
msgid "An error has occured during the sending of the email."
|
|
203
203
|
msgstr ""
|
|
204
204
|
|
|
205
|
+
#. module: account_credit_control
|
|
206
|
+
#: model:ir.model.fields,help:account_credit_control.field_credit_control_policy__apply_max_policy_level
|
|
207
|
+
#: model:ir.model.fields,help:account_credit_control.field_res_config_settings__default_apply_max_policy_level
|
|
208
|
+
msgid ""
|
|
209
|
+
"Apply max policy lavel for one partner in a credit control run execution to "
|
|
210
|
+
"have all credit control lines on same communication level"
|
|
211
|
+
msgstr ""
|
|
212
|
+
|
|
213
|
+
#. module: account_credit_control
|
|
214
|
+
#: model:ir.model.fields,field_description:account_credit_control.field_credit_control_policy__apply_max_policy_level
|
|
215
|
+
#: model:ir.model.fields,field_description:account_credit_control.field_res_config_settings__default_apply_max_policy_level
|
|
216
|
+
msgid "Apply max policy level"
|
|
217
|
+
msgstr ""
|
|
218
|
+
|
|
219
|
+
#. module: account_credit_control
|
|
220
|
+
#: model_terms:ir.ui.view,arch_db:account_credit_control.res_config_settings_view_form
|
|
221
|
+
msgid ""
|
|
222
|
+
"Apply max policy level for one partner in a credit"
|
|
223
|
+
" control run execution to have all credit "
|
|
224
|
+
"control lines on same communication level"
|
|
225
|
+
msgstr ""
|
|
226
|
+
|
|
205
227
|
#. module: account_credit_control
|
|
206
228
|
#: model_terms:ir.ui.view,arch_db:account_credit_control.credit_control_policy_form
|
|
207
229
|
#: model_terms:ir.ui.view,arch_db:account_credit_control.res_partner_payment_action_type_form_view
|
|
@@ -353,11 +375,6 @@ msgstr ""
|
|
|
353
375
|
msgid "Control Credit Line"
|
|
354
376
|
msgstr ""
|
|
355
377
|
|
|
356
|
-
#. module: account_credit_control
|
|
357
|
-
#: model_terms:ir.ui.view,arch_db:account_credit_control.credit_control_line_tree
|
|
358
|
-
msgid "Control Credit Line Form"
|
|
359
|
-
msgstr ""
|
|
360
|
-
|
|
361
378
|
#. module: account_credit_control
|
|
362
379
|
#: model_terms:ir.ui.view,arch_db:account_credit_control.credit_control_line_form
|
|
363
380
|
#: model_terms:ir.ui.view,arch_db:account_credit_control.credit_control_line_search
|
|
@@ -1531,14 +1548,6 @@ msgstr ""
|
|
|
1531
1548
|
msgid "Salesperson"
|
|
1532
1549
|
msgstr ""
|
|
1533
1550
|
|
|
1534
|
-
#. module: account_credit_control
|
|
1535
|
-
#. odoo-python
|
|
1536
|
-
#: code:addons/account_credit_control/models/credit_control_line.py:0
|
|
1537
|
-
#: model_terms:ir.ui.view,arch_db:account_credit_control.credit_control_line_tree
|
|
1538
|
-
#, python-format
|
|
1539
|
-
msgid "Schedule activity"
|
|
1540
|
-
msgstr ""
|
|
1541
|
-
|
|
1542
1551
|
#. module: account_credit_control
|
|
1543
1552
|
#: model:ir.actions.act_window,name:account_credit_control.open_credit_line_emailer_wizard
|
|
1544
1553
|
#: model:ir.actions.act_window,name:account_credit_control.open_credit_line_emailer_wizard_menu_action
|
|
@@ -289,27 +289,3 @@ class CreditControlLine(models.Model):
|
|
|
289
289
|
if "manual_followup" in values:
|
|
290
290
|
self.partner_id.write({"manual_followup": values.get("manual_followup")})
|
|
291
291
|
return res
|
|
292
|
-
|
|
293
|
-
def button_schedule_activity(self):
|
|
294
|
-
ctx = self.env.context.copy()
|
|
295
|
-
ctx.update({"default_res_id": self.ids[0], "default_res_model": self._name})
|
|
296
|
-
return {
|
|
297
|
-
"type": "ir.actions.act_window",
|
|
298
|
-
"name": _("Schedule activity"),
|
|
299
|
-
"res_model": "mail.activity",
|
|
300
|
-
"binding_view_types": "form",
|
|
301
|
-
"view_mode": "form",
|
|
302
|
-
"res_id": self.activity_ids and self.activity_ids.ids[0] or False,
|
|
303
|
-
"views": [[False, "form"]],
|
|
304
|
-
"context": ctx,
|
|
305
|
-
"target": "new",
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
def button_credit_control_line_form(self):
|
|
309
|
-
self.ensure_one()
|
|
310
|
-
action = self.env.ref("account_credit_control.credit_control_line_action")
|
|
311
|
-
form = self.env.ref("account_credit_control.credit_control_line_form")
|
|
312
|
-
action = action.read()[0]
|
|
313
|
-
action["views"] = [(form.id, "form")]
|
|
314
|
-
action["res_id"] = self.id
|
|
315
|
-
return action
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
# Copyright 2017 Okia SPRL (https://okia.be)
|
|
3
3
|
# Copyright 2020 Manuel Calero - Tecnativa
|
|
4
4
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
5
|
+
from collections import defaultdict
|
|
6
|
+
|
|
5
7
|
from odoo import _, api, fields, models
|
|
6
8
|
from odoo.exceptions import UserError, ValidationError
|
|
7
9
|
|
|
@@ -19,6 +21,7 @@ class CreditControlPolicy(models.Model):
|
|
|
19
21
|
comodel_name="credit.control.policy.level",
|
|
20
22
|
inverse_name="policy_id",
|
|
21
23
|
string="Policy Levels",
|
|
24
|
+
copy=True,
|
|
22
25
|
)
|
|
23
26
|
do_nothing = fields.Boolean(
|
|
24
27
|
help="For policies which should not generate lines or are obsolete"
|
|
@@ -32,6 +35,11 @@ class CreditControlPolicy(models.Model):
|
|
|
32
35
|
help="This policy will be active only for the selected accounts",
|
|
33
36
|
)
|
|
34
37
|
active = fields.Boolean(default=True)
|
|
38
|
+
apply_max_policy_level = fields.Boolean(
|
|
39
|
+
string="Apply max policy level",
|
|
40
|
+
help="Apply max policy lavel for one partner in a credit control run execution "
|
|
41
|
+
"to have all credit control lines on same communication level",
|
|
42
|
+
)
|
|
35
43
|
|
|
36
44
|
def _move_lines_domain(self, credit_control_run):
|
|
37
45
|
"""Build the default domain for searching move lines"""
|
|
@@ -185,7 +193,6 @@ class CreditControlPolicy(models.Model):
|
|
|
185
193
|
|
|
186
194
|
def _generate_credit_lines(self, credit_control_run, default_lines_vals=None):
|
|
187
195
|
self.ensure_one()
|
|
188
|
-
controlling_date = credit_control_run.date
|
|
189
196
|
credit_line_model = self.env["credit.control.line"]
|
|
190
197
|
lines = self._get_move_lines_to_process(credit_control_run)
|
|
191
198
|
manual_lines = self._lines_different_policy(lines)
|
|
@@ -195,15 +202,28 @@ class CreditControlPolicy(models.Model):
|
|
|
195
202
|
# policy levels are sorted by level
|
|
196
203
|
# so iteration is in the correct order
|
|
197
204
|
create = policy_lines_generated.create_or_update_from_mv_lines
|
|
205
|
+
partner_level_dic = {}
|
|
198
206
|
for level in reversed(self.level_ids):
|
|
199
|
-
level_lines = level.get_level_lines(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
+
level_lines = level.get_level_lines(credit_control_run.date, lines)
|
|
208
|
+
if self.apply_max_policy_level:
|
|
209
|
+
policy_lines_generated += (
|
|
210
|
+
self._generate_policy_lines_with_max_level(
|
|
211
|
+
credit_control_run,
|
|
212
|
+
policy_lines_generated,
|
|
213
|
+
partner_level_dic,
|
|
214
|
+
level_lines,
|
|
215
|
+
level,
|
|
216
|
+
default_lines_vals,
|
|
217
|
+
)
|
|
218
|
+
)
|
|
219
|
+
else:
|
|
220
|
+
policy_lines_generated += create(
|
|
221
|
+
level_lines,
|
|
222
|
+
level,
|
|
223
|
+
credit_control_run.date,
|
|
224
|
+
credit_control_run.company_id,
|
|
225
|
+
default_lines_vals=default_lines_vals,
|
|
226
|
+
)
|
|
207
227
|
if policy_lines_generated:
|
|
208
228
|
report = _(
|
|
209
229
|
'Policy "<b>%(name)s</b>" has generated <b>'
|
|
@@ -223,6 +243,32 @@ class CreditControlPolicy(models.Model):
|
|
|
223
243
|
)
|
|
224
244
|
return (manual_lines, policy_lines_generated, report)
|
|
225
245
|
|
|
246
|
+
def _generate_policy_lines_with_max_level(
|
|
247
|
+
self,
|
|
248
|
+
credit_control_run,
|
|
249
|
+
policy_lines_generated,
|
|
250
|
+
partner_level_dic,
|
|
251
|
+
level_lines,
|
|
252
|
+
level,
|
|
253
|
+
default_lines_vals,
|
|
254
|
+
):
|
|
255
|
+
AccountMoveLine = self.env["account.move.line"]
|
|
256
|
+
create = policy_lines_generated.create_or_update_from_mv_lines
|
|
257
|
+
level_dic = defaultdict(list)
|
|
258
|
+
for level_line in level_lines:
|
|
259
|
+
if level_line.partner_id.id not in partner_level_dic:
|
|
260
|
+
partner_level_dic[level_line.partner_id.id] = level
|
|
261
|
+
level_dic[partner_level_dic[level_line.partner_id.id]].append(level_line.id)
|
|
262
|
+
for level, line_ids in level_dic.items():
|
|
263
|
+
policy_lines_generated += create(
|
|
264
|
+
AccountMoveLine.browse(line_ids),
|
|
265
|
+
level,
|
|
266
|
+
credit_control_run.date,
|
|
267
|
+
credit_control_run.company_id,
|
|
268
|
+
default_lines_vals=default_lines_vals,
|
|
269
|
+
)
|
|
270
|
+
return policy_lines_generated
|
|
271
|
+
|
|
226
272
|
@api.model
|
|
227
273
|
def _name_search(self, name, domain=None, operator="ilike", limit=None, order=None):
|
|
228
274
|
"""Alternative implementation for domain on account, equivalent to
|
|
@@ -22,3 +22,9 @@ class ResConfigSettings(models.TransientModel):
|
|
|
22
22
|
"This setting can be overridden"
|
|
23
23
|
" on partners or invoices.",
|
|
24
24
|
)
|
|
25
|
+
default_apply_max_policy_level = fields.Boolean(
|
|
26
|
+
string="Apply max policy level",
|
|
27
|
+
default_model="credit.control.policy",
|
|
28
|
+
help="Apply max policy lavel for one partner in a credit control run execution "
|
|
29
|
+
"to have all credit control lines on same communication level",
|
|
30
|
+
)
|
|
@@ -367,7 +367,7 @@ ul.auto-toc {
|
|
|
367
367
|
!! This file is generated by oca-gen-addon-readme !!
|
|
368
368
|
!! changes will be overwritten. !!
|
|
369
369
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
370
|
-
!! source digest: sha256:
|
|
370
|
+
!! source digest: sha256:8d227f945da4773a09a1870bf1a39d6b943f789c4e1dc9cd3c396f12b481d985
|
|
371
371
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
|
372
372
|
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/credit-control/tree/17.0/account_credit_control"><img alt="OCA/credit-control" src="https://img.shields.io/badge/github-OCA%2Fcredit--control-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/credit-control-17-0/credit-control-17-0-account_credit_control"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/credit-control&target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
373
373
|
<p>Account Credit Control module is a part of Financial Tools used in
|
|
@@ -136,6 +136,41 @@ class TestCreditControlRun(AccountTestInvoicingCommon):
|
|
|
136
136
|
regex_result = re.match(report_regex, control_run.report)
|
|
137
137
|
self.assertIsNotNone(regex_result)
|
|
138
138
|
|
|
139
|
+
def test_generate_credit_lines_with_max_level(self):
|
|
140
|
+
"""
|
|
141
|
+
Test the method generate_credit_lines with max level group.
|
|
142
|
+
For more than one invoice with date different due we need various credit control
|
|
143
|
+
runs.
|
|
144
|
+
"""
|
|
145
|
+
self.policy.apply_max_policy_level = True
|
|
146
|
+
|
|
147
|
+
invoice1 = self.invoice.copy()
|
|
148
|
+
invoice1.invoice_date = "2024-12-01"
|
|
149
|
+
invoice1.invoice_date_due = "2024-12-01"
|
|
150
|
+
invoice1.action_post()
|
|
151
|
+
|
|
152
|
+
invoice2 = self.invoice.copy()
|
|
153
|
+
invoice2.invoice_date = "2025-01-01"
|
|
154
|
+
invoice2.invoice_date_due = "2025-01-01"
|
|
155
|
+
invoice2.action_post()
|
|
156
|
+
|
|
157
|
+
control_run = self.env["credit.control.run"].create(
|
|
158
|
+
{"date": "2024-12-30", "policy_ids": [(6, 0, [self.policy.id])]}
|
|
159
|
+
)
|
|
160
|
+
control_run.with_context(lang="en_US").generate_credit_lines()
|
|
161
|
+
control_run.set_to_ready_lines()
|
|
162
|
+
# This module uses SQL queries to search records so we have to
|
|
163
|
+
# store previous control lines
|
|
164
|
+
self.env.cr.flush()
|
|
165
|
+
|
|
166
|
+
control_run = self.env["credit.control.run"].create(
|
|
167
|
+
{"date": "2025-01-30", "policy_ids": [(6, 0, [self.policy.id])]}
|
|
168
|
+
)
|
|
169
|
+
control_run.with_context(lang="en_US").generate_credit_lines()
|
|
170
|
+
self.assertEqual(len(control_run.line_ids.mapped("level")), 3)
|
|
171
|
+
# All control lines have the level 2
|
|
172
|
+
self.assertEqual(set(control_run.line_ids.mapped("level")), {2})
|
|
173
|
+
|
|
139
174
|
def test_multi_credit_control_run(self):
|
|
140
175
|
"""
|
|
141
176
|
Generate several control run
|
|
@@ -210,23 +210,16 @@
|
|
|
210
210
|
decoration-danger="state in ('error', 'email_error')"
|
|
211
211
|
decoration-muted="state == 'ignored'"
|
|
212
212
|
decoration-success="state == 'sent'"
|
|
213
|
+
open_form_view="True"
|
|
213
214
|
>
|
|
214
|
-
<
|
|
215
|
-
|
|
216
|
-
aria-label="Control Credit Line Form"
|
|
217
|
-
title="Control Credit Line Form"
|
|
218
|
-
type="object"
|
|
219
|
-
icon="fa-external-link"
|
|
220
|
-
class="oe_stat_button"
|
|
221
|
-
/>
|
|
222
|
-
<field name="date" />
|
|
223
|
-
<field name="date_due" />
|
|
215
|
+
<field name="date" readonly="state != 'draft'" />
|
|
216
|
+
<field name="date_due" readonly="state != 'draft'" />
|
|
224
217
|
<field name="level" />
|
|
225
|
-
<field name="manually_overridden" />
|
|
218
|
+
<field name="manually_overridden" readonly="state != 'draft'" />
|
|
226
219
|
<field name="state" />
|
|
227
|
-
<field name="channel" />
|
|
220
|
+
<field name="channel" readonly="state != 'draft'" />
|
|
228
221
|
<field name="invoice_id" />
|
|
229
|
-
<field name="partner_id" />
|
|
222
|
+
<field name="partner_id" readonly="True" />
|
|
230
223
|
<field name="manual_followup" />
|
|
231
224
|
<field name="amount_due" widget="monetary" optional="hide" />
|
|
232
225
|
<field name="balance_due" widget="monetary" />
|
|
@@ -237,17 +230,13 @@
|
|
|
237
230
|
/>
|
|
238
231
|
<field name="move_line_id" optional="hide" />
|
|
239
232
|
<field name="account_id" optional="hide" />
|
|
240
|
-
<field
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
name="button_schedule_activity"
|
|
245
|
-
type="object"
|
|
246
|
-
aria-label="Schedule activity"
|
|
247
|
-
title="Schedule activity"
|
|
248
|
-
icon="fa-clock-o"
|
|
233
|
+
<field
|
|
234
|
+
name="policy_level_id"
|
|
235
|
+
readonly="state != 'draft'"
|
|
236
|
+
domain="[('policy_id', '=', policy_id)]"
|
|
249
237
|
/>
|
|
250
|
-
<field name="
|
|
238
|
+
<field name="policy_id" readonly="state != 'draft'" />
|
|
239
|
+
<field name="activity_ids" widget="list_activity" optional="show" />
|
|
251
240
|
</tree>
|
|
252
241
|
</field>
|
|
253
242
|
</record>
|
|
@@ -264,7 +253,7 @@
|
|
|
264
253
|
<field name="res_model">credit.control.line</field>
|
|
265
254
|
<field name="domain" />
|
|
266
255
|
<field name="binding_view_types">form</field>
|
|
267
|
-
<field name="view_mode">tree,form</field>
|
|
256
|
+
<field name="view_mode">tree,form,activity</field>
|
|
268
257
|
<field name="view_id" ref="credit_control_line_tree" />
|
|
269
258
|
<field name="context">{'search_default_filter_draft': 1,
|
|
270
259
|
'search_default_filter_to_be_sent': 1}
|
|
@@ -5,73 +5,90 @@
|
|
|
5
5
|
<field name="model">credit.control.policy</field>
|
|
6
6
|
<field name="arch" type="xml">
|
|
7
7
|
<form string="Credit control policy">
|
|
8
|
-
<
|
|
8
|
+
<sheet>
|
|
9
|
+
<div class="oe_button_box" name="button_box" />
|
|
9
10
|
<widget
|
|
10
11
|
name="web_ribbon"
|
|
11
12
|
title="Archived"
|
|
12
|
-
bg_color="bg-danger"
|
|
13
|
+
bg_color="text-bg-danger"
|
|
13
14
|
invisible="active"
|
|
14
15
|
/>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
name="
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
16
|
+
<group>
|
|
17
|
+
<group>
|
|
18
|
+
<field name="name" />
|
|
19
|
+
<field name="do_nothing" />
|
|
20
|
+
<field name="active" invisible="1" />
|
|
21
|
+
</group>
|
|
22
|
+
<group>
|
|
23
|
+
<field name="apply_max_policy_level" />
|
|
24
|
+
<field
|
|
25
|
+
name="company_id"
|
|
26
|
+
groups="base.group_multi_company"
|
|
27
|
+
/>
|
|
28
|
+
</group>
|
|
29
|
+
</group>
|
|
30
|
+
<notebook colspan="4">
|
|
31
|
+
<page string="Policy levels">
|
|
32
|
+
<field name="level_ids" nolabel="1" colspan="4">
|
|
33
|
+
<tree>
|
|
34
|
+
<field name="name" />
|
|
35
|
+
<field name="level" />
|
|
36
|
+
<field name="channel" />
|
|
37
|
+
<field name="delay_days" />
|
|
38
|
+
<field name="computation_mode" />
|
|
39
|
+
<field name="email_template_id" />
|
|
40
|
+
</tree>
|
|
41
|
+
<form string="Policy level">
|
|
42
|
+
<field name="name" />
|
|
43
|
+
<notebook>
|
|
44
|
+
<page string="Delay Setting">
|
|
45
|
+
<group>
|
|
46
|
+
<field name="level" />
|
|
47
|
+
<field name="channel" />
|
|
48
|
+
<field name="delay_days" />
|
|
49
|
+
<field name="computation_mode" />
|
|
50
|
+
</group>
|
|
51
|
+
</page>
|
|
52
|
+
<page string="Mail and reporting">
|
|
53
|
+
<group colspan="2">
|
|
54
|
+
<field
|
|
55
|
+
name="email_template_id"
|
|
56
|
+
context="{'default_model': 'credit.control.communication'}"
|
|
57
|
+
colspan="2"
|
|
58
|
+
/>
|
|
59
|
+
<field name="custom_text" colspan="2" />
|
|
60
|
+
<field
|
|
61
|
+
name="custom_text_after_details"
|
|
62
|
+
colspan="2"
|
|
63
|
+
/>
|
|
64
|
+
<field
|
|
65
|
+
name="mail_show_invoice_detail"
|
|
66
|
+
invisible="channel != 'email'"
|
|
67
|
+
colspan="2"
|
|
68
|
+
/>
|
|
69
|
+
<field
|
|
70
|
+
name="custom_mail_text"
|
|
71
|
+
colspan="2"
|
|
72
|
+
/>
|
|
73
|
+
</group>
|
|
74
|
+
</page>
|
|
75
|
+
</notebook>
|
|
76
|
+
</form>
|
|
77
|
+
</field>
|
|
78
|
+
</page>
|
|
79
|
+
<page string="Accounts">
|
|
80
|
+
<field name="account_ids" nolabel="1">
|
|
81
|
+
<tree>
|
|
82
|
+
<field name="code" />
|
|
83
|
+
<field name="name" />
|
|
84
|
+
<field name="account_type" />
|
|
85
|
+
<field name="currency_id" />
|
|
86
|
+
<field name="tag_ids" widget="many2many_tags" />
|
|
87
|
+
</tree>
|
|
88
|
+
</field>
|
|
89
|
+
</page>
|
|
90
|
+
</notebook>
|
|
91
|
+
</sheet>
|
|
75
92
|
</form>
|
|
76
93
|
</field>
|
|
77
94
|
</record>
|
|
@@ -38,6 +38,14 @@
|
|
|
38
38
|
</div>
|
|
39
39
|
</div>
|
|
40
40
|
</setting>
|
|
41
|
+
<setting
|
|
42
|
+
id="default_apply_max_policy_level"
|
|
43
|
+
help="Apply max policy level for one partner in a credit
|
|
44
|
+
control run execution to have all credit control lines on
|
|
45
|
+
same communication level"
|
|
46
|
+
>
|
|
47
|
+
<field name="default_apply_max_policy_level" />
|
|
48
|
+
</setting>
|
|
41
49
|
</block>
|
|
42
50
|
</t>
|
|
43
51
|
</xpath>
|
|
@@ -12,10 +12,7 @@
|
|
|
12
12
|
name="context"
|
|
13
13
|
>{'search_default_partner_id': active_id, 'default_partner_id': active_id}</field>
|
|
14
14
|
<field name="res_model">credit.control.line</field>
|
|
15
|
-
<field name="
|
|
16
|
-
<field name="binding_view_types">form</field>
|
|
17
|
-
<field name="target">new</field>
|
|
18
|
-
<field name="view_mode">form</field>
|
|
15
|
+
<field name="view_mode">tree,form,activity</field>
|
|
19
16
|
</record>
|
|
20
17
|
|
|
21
18
|
<record id="partner_view_buttons" model="ir.ui.view">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-account_credit_control
|
|
3
|
-
Version: 17.0.2.
|
|
3
|
+
Version: 17.0.2.2.0
|
|
4
4
|
Requires-Python: >=3.10
|
|
5
5
|
Requires-Dist: odoo>=17.0a,<17.1dev
|
|
6
6
|
Summary: Account Credit Control
|
|
@@ -22,7 +22,7 @@ Account Credit Control
|
|
|
22
22
|
!! This file is generated by oca-gen-addon-readme !!
|
|
23
23
|
!! changes will be overwritten. !!
|
|
24
24
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
25
|
-
!! source digest: sha256:
|
|
25
|
+
!! source digest: sha256:8d227f945da4773a09a1870bf1a39d6b943f789c4e1dc9cd3c396f12b481d985
|
|
26
26
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
27
27
|
|
|
28
28
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
odoo/addons/account_credit_control/README.rst,sha256=
|
|
1
|
+
odoo/addons/account_credit_control/README.rst,sha256=QAWhoS25FWMjJNn0mpNgj_K8mFxi0HEyNww0lQHIh4k,5397
|
|
2
2
|
odoo/addons/account_credit_control/__init__.py,sha256=8MjrwJNjAjKy6j77I1529EUbQMh7TZ867lnz-KzifyI,127
|
|
3
|
-
odoo/addons/account_credit_control/__manifest__.py,sha256=
|
|
3
|
+
odoo/addons/account_credit_control/__manifest__.py,sha256=juWiqQ8EpQF5GF6qa7Z4-JYC6hZysFuocnFDjKdiCbU,1598
|
|
4
4
|
odoo/addons/account_credit_control/data/data.xml,sha256=KmNx4QU2OJ0pcC8O1bXJLqzVKyg-9wfMRJwdrSLDpyo,10879
|
|
5
5
|
odoo/addons/account_credit_control/demo/res_users.xml,sha256=KWDhrbbE4VTCHpkvFMu49yeLkGdwIson7hOkboR-0dE,372
|
|
6
|
-
odoo/addons/account_credit_control/i18n/account_credit_control.pot,sha256=
|
|
6
|
+
odoo/addons/account_credit_control/i18n/account_credit_control.pot,sha256=yIJBxomsUNNZgii68bfAVPTo6QB9xmQwhgn8N8MN_W8,76961
|
|
7
7
|
odoo/addons/account_credit_control/i18n/am.po,sha256=IlmEV7ICcdd5fx6TtTGZMHBDwY9qOz0bIp8akn9lPmo,76757
|
|
8
8
|
odoo/addons/account_credit_control/i18n/ar.po,sha256=-FrH9CLluDpNl7qu81dnvX4U_eQ1z-safnriP7WZZUc,77052
|
|
9
9
|
odoo/addons/account_credit_control/i18n/bg.po,sha256=SH7dRgodaMWH28sbuuKgx1O_twhf6IOSBVemd2yyxbE,76950
|
|
@@ -84,13 +84,13 @@ odoo/addons/account_credit_control/models/__init__.py,sha256=sb3eOYTLCrhAigyAPEq
|
|
|
84
84
|
odoo/addons/account_credit_control/models/account_account.py,sha256=k7A1hrH2xi-em9uvuBsYuAj-UviL1s_X7wK0GprbZI4,503
|
|
85
85
|
odoo/addons/account_credit_control/models/account_move.py,sha256=MzN_JSc7GcuDq3YsXOWs7pgk3e8Wt2QtFRlxifoUe24,2128
|
|
86
86
|
odoo/addons/account_credit_control/models/credit_control_communication.py,sha256=4KmSC-5U_edJh9gtvOjphqLowr6oDp91DmAeKC48fDM,10471
|
|
87
|
-
odoo/addons/account_credit_control/models/credit_control_line.py,sha256
|
|
88
|
-
odoo/addons/account_credit_control/models/credit_control_policy.py,sha256=
|
|
87
|
+
odoo/addons/account_credit_control/models/credit_control_line.py,sha256=o_OdzGSijBCTEWYwXT2NbQXGpS56d7G3I-tkU3CcJrc,10402
|
|
88
|
+
odoo/addons/account_credit_control/models/credit_control_policy.py,sha256=tSV87CLaPpQ3Cq-LJPU5dYEIIlzfh5vaR20o7gmjVxE,18303
|
|
89
89
|
odoo/addons/account_credit_control/models/credit_control_run.py,sha256=TcVXDibr1_rIqYWLZIg_X9hrUYCtlkRmoL9fZ9OX9R0,7840
|
|
90
90
|
odoo/addons/account_credit_control/models/mail_mail.py,sha256=Dj9BtaMn-Bda7LJ75CWbtO2nmq4qBcWyB8NBeH7Kkfg,1173
|
|
91
91
|
odoo/addons/account_credit_control/models/mail_message.py,sha256=ZogeU-PTBLTNaW19w49cEYzKgEDcTO9FvCJTQ2Mwm7Q,818
|
|
92
92
|
odoo/addons/account_credit_control/models/res_company.py,sha256=vmoBLc6EmvuwRgUeISjkrDKjwcxv_y94ejVDOA5FDmE,793
|
|
93
|
-
odoo/addons/account_credit_control/models/res_config_settings.py,sha256=
|
|
93
|
+
odoo/addons/account_credit_control/models/res_config_settings.py,sha256=JSYMvFivdXWyDusoKY-dhuCfLotOlqA1RrbIYN7HxgQ,1124
|
|
94
94
|
odoo/addons/account_credit_control/models/res_partner.py,sha256=1KbpDRbm_UZvdAc-2VRQodI9ywEFmrNHt_7r4VS7nbI,3934
|
|
95
95
|
odoo/addons/account_credit_control/readme/CONFIGURE.md,sha256=Whc2n2U-5F3Y_m9DBqWSn8dBCf9DI4ILvc3hd-L8AJY,499
|
|
96
96
|
odoo/addons/account_credit_control/readme/CONTRIBUTORS.md,sha256=kWWIq-fX_Ia784Gzz0naJ23Qd9HFW7Q4oxk7WdZuyGI,697
|
|
@@ -104,20 +104,20 @@ odoo/addons/account_credit_control/report/report_credit_control_summary.xml,sha2
|
|
|
104
104
|
odoo/addons/account_credit_control/security/account_security.xml,sha256=72GmbiYqrJBdjAap88o3k-g8Y76jM5CCIZbZc6_TGuY,4071
|
|
105
105
|
odoo/addons/account_credit_control/security/ir.model.access.csv,sha256=FgKzKdftXknPsreudq4NdvaGqxuUaVWWxGgmrfjHqRA,5531
|
|
106
106
|
odoo/addons/account_credit_control/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
107
|
-
odoo/addons/account_credit_control/static/description/index.html,sha256=
|
|
107
|
+
odoo/addons/account_credit_control/static/description/index.html,sha256=PJnYgblnxnBmmLtLcyXs0ohAjjHYh-sAdHLn1luBBo8,16015
|
|
108
108
|
odoo/addons/account_credit_control/tests/__init__.py,sha256=ytdwXdWp6qfFDhN08R3rfI-w_AriEuONj3VSBV3Ztb0,206
|
|
109
109
|
odoo/addons/account_credit_control/tests/test_account_move.py,sha256=H62QDrGocrqHKK1ayf5DaUnerCo0_MHrFjgo__fdK68,11178
|
|
110
110
|
odoo/addons/account_credit_control/tests/test_credit_control_policy.py,sha256=IzBsyIf7iJXUP3jG3_T2yW6bKLJ4HbcvAuyfmC2Wui8,3210
|
|
111
|
-
odoo/addons/account_credit_control/tests/test_credit_control_run.py,sha256=
|
|
111
|
+
odoo/addons/account_credit_control/tests/test_credit_control_run.py,sha256=57h13eeLyj7iu9o9skI1SJSWpkX0UFS88q6RTBaZTF8,15895
|
|
112
112
|
odoo/addons/account_credit_control/tests/test_res_partner.py,sha256=GnQsu6T2suBp_44nJlUjTIYs3UNhrNpQWvuYgnWSz1U,1696
|
|
113
113
|
odoo/addons/account_credit_control/views/account_move.xml,sha256=gSoz9Zd0YAEQdfkIh8g1yqqw0XQWXy5kxa6tMVbj7G0,2145
|
|
114
114
|
odoo/addons/account_credit_control/views/credit_control_communication.xml,sha256=r9NzBXkV7qQia3698EjDc--F7Ay3LFY3nEmFwiFliGM,6821
|
|
115
|
-
odoo/addons/account_credit_control/views/credit_control_line.xml,sha256=
|
|
116
|
-
odoo/addons/account_credit_control/views/credit_control_policy.xml,sha256=
|
|
115
|
+
odoo/addons/account_credit_control/views/credit_control_line.xml,sha256=s2HWr3BZ6niYTtfqt8SpXnozBhidtI940aSouxAbfbs,11871
|
|
116
|
+
odoo/addons/account_credit_control/views/credit_control_policy.xml,sha256=sp-hU8YW93ce1DTTKkWYfezBq2KPHIvCYjkbiF-G7c4,7981
|
|
117
117
|
odoo/addons/account_credit_control/views/credit_control_run.xml,sha256=95xgtEzNqR06jOOfyR8Rw3mkqvtxNiynTnt6L3znlJ8,5637
|
|
118
118
|
odoo/addons/account_credit_control/views/res_company.xml,sha256=aTBE7IoPHIRjPKG3A-CYaTcq-1x5BHPw3Lcotepnso8,954
|
|
119
|
-
odoo/addons/account_credit_control/views/res_config_settings_view.xml,sha256=
|
|
120
|
-
odoo/addons/account_credit_control/views/res_partner.xml,sha256=
|
|
119
|
+
odoo/addons/account_credit_control/views/res_config_settings_view.xml,sha256=KFtCgWmZG-Qzo0-UCXZpe9rhaGPKfO0gvRV5jIQeVME,2696
|
|
120
|
+
odoo/addons/account_credit_control/views/res_partner.xml,sha256=c6dQth6jFTWBxo9HqBU9IchUJ4p1CH7DASiI8bQERdo,9037
|
|
121
121
|
odoo/addons/account_credit_control/wizard/__init__.py,sha256=5tOcdayjOCnK9tSEhwnWzYe_fS4pZL4EvZ1XoxIQfqM,253
|
|
122
122
|
odoo/addons/account_credit_control/wizard/credit_control_emailer.py,sha256=ixD4Wd_qE9R-pL0i1yopuIIa75FzgMqWTkFIeqeJlgk,2299
|
|
123
123
|
odoo/addons/account_credit_control/wizard/credit_control_emailer_view.xml,sha256=OU73yG5zcDwoXLhmMBxP0xs-EyyMZo6PhLZ1gzyKzcc,2049
|
|
@@ -128,7 +128,7 @@ odoo/addons/account_credit_control/wizard/credit_control_policy_changer_view.xml
|
|
|
128
128
|
odoo/addons/account_credit_control/wizard/credit_control_printer.py,sha256=1UhTbmiZW6Do2x-2D-K-Lrv003P3P9VlhstVjfJBzZo,1816
|
|
129
129
|
odoo/addons/account_credit_control/wizard/credit_control_printer_view.xml,sha256=PbziKrepf9o5ocwZlWdhPwWCkaa2_6AhuoKMp6rEzWI,2101
|
|
130
130
|
odoo/addons/account_credit_control/wizard/mail_compose_message.py,sha256=JCnfhE338Z9ebZliiGKlJaCpZOjit5AQwRPKqwUAB_8,1063
|
|
131
|
-
odoo_addon_account_credit_control-17.0.2.
|
|
132
|
-
odoo_addon_account_credit_control-17.0.2.
|
|
133
|
-
odoo_addon_account_credit_control-17.0.2.
|
|
134
|
-
odoo_addon_account_credit_control-17.0.2.
|
|
131
|
+
odoo_addon_account_credit_control-17.0.2.2.0.dist-info/METADATA,sha256=eeeqNC7dlCAHl3xqPcUKJIeX49ysDQzMmPT2oJzfLSw,5961
|
|
132
|
+
odoo_addon_account_credit_control-17.0.2.2.0.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
|
|
133
|
+
odoo_addon_account_credit_control-17.0.2.2.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
134
|
+
odoo_addon_account_credit_control-17.0.2.2.0.dist-info/RECORD,,
|
|
File without changes
|