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.
@@ -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:2635413f841e91a777bf205d12ca8a06898ae17261db40ee6851e056f69764c3
10
+ !! source digest: sha256:8d227f945da4773a09a1870bf1a39d6b943f789c4e1dc9cd3c396f12b481d985
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -5,7 +5,7 @@
5
5
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
6
6
  {
7
7
  "name": "Account Credit Control",
8
- "version": "17.0.2.1.0",
8
+ "version": "17.0.2.2.0",
9
9
  "author": "Camptocamp,"
10
10
  "Odoo Community Association (OCA),"
11
11
  "Okia,"
@@ -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(controlling_date, lines)
200
- policy_lines_generated += create(
201
- level_lines,
202
- level,
203
- controlling_date,
204
- credit_control_run.company_id,
205
- default_lines_vals=default_lines_vals,
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:2635413f841e91a777bf205d12ca8a06898ae17261db40ee6851e056f69764c3
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&amp;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
- <button
215
- name="button_credit_control_line_form"
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 name="policy_level_id" />
241
- <field name="policy_id" />
242
- <field name="activity_date_deadline" />
243
- <button
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="activity_summary" />
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
- <div class="oe_button_box" name="button_box">
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
- </div>
16
- <group>
17
- <field name="name" />
18
- <field name="do_nothing" />
19
- <field name="company_id" groups="base.group_multi_company" />
20
- <field name="active" />
21
- </group>
22
- <notebook colspan="4">
23
- <page string="Policy levels">
24
- <field name="level_ids" nolabel="1" colspan="4">
25
- <tree>
26
- <field name="name" />
27
- <field name="level" />
28
- <field name="channel" />
29
- <field name="delay_days" />
30
- <field name="computation_mode" />
31
- <field name="email_template_id" />
32
- </tree>
33
- <form string="Policy level">
34
- <field name="name" />
35
- <notebook>
36
- <page string="Delay Setting">
37
- <group>
38
- <field name="level" />
39
- <field name="channel" />
40
- <field name="delay_days" />
41
- <field name="computation_mode" />
42
- </group>
43
- </page>
44
- <page string="Mail and reporting">
45
- <group colspan="2">
46
- <field
47
- name="email_template_id"
48
- context="{'default_model': 'credit.control.communication'}"
49
- colspan="2"
50
- />
51
- <field name="custom_text" colspan="2" />
52
- <field
53
- name="custom_text_after_details"
54
- colspan="2"
55
- />
56
- <field
57
- name="mail_show_invoice_detail"
58
- invisible="channel != 'email'"
59
- colspan="2"
60
- />
61
- <field
62
- name="custom_mail_text"
63
- colspan="2"
64
- />
65
- </group>
66
- </page>
67
- </notebook>
68
- </form>
69
- </field>
70
- </page>
71
- <page string="Accounts">
72
- <field name="account_ids" nolabel="1" />
73
- </page>
74
- </notebook>
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="binding_model_id" ref="base.model_res_partner" />
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.1.0.1
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:2635413f841e91a777bf205d12ca8a06898ae17261db40ee6851e056f69764c3
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=l1YG5tNFmJtBw6-R_dw78FcmwUpLNaFQJuFoZOfqdw8,5397
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=XrgH21aeZZV0dW6KgmIjYmeHaRNAK-aCz4tlrGakmN0,1598
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=Fcjgo8el8bYkxvAqU-jMWTZf577D9oo2XB1KVOgMVck,76310
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=-IFarHejwGNf43DvqrDQGnczoBVd_VkNkB9ZHdgvZGs,11348
88
- odoo/addons/account_credit_control/models/credit_control_policy.py,sha256=0EuDk4sq0aFdSWgOL-5aLuS-D1NM-FiHjLke2m0LXJk,16452
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=P2L6qJUnQZ0xCwlNjb66uh_94ujN-PmycOWxxRY080A,816
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=ZlfqvO2cgbwVGsYv7Uvo-EIx_zKj9IkwvVWpKel-lBE,16015
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=jU8he7kjrGpp1vTAvRhTGVbhQGyOjQYcG8amyZqbcNY,14454
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=_u_aG3D3odFrnX3YNvyWu7jUc6G0oWTh9NWGXmthrXQ,12142
116
- odoo/addons/account_credit_control/views/credit_control_policy.xml,sha256=hYBr4RcjGiPmc3jYwNWroYoKJzJVoWX9lrFf6EnJGwY,6942
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=iypH5uqdrPIRxxeFW35qY33uvetBW6LMUeMu0tWGYM0,2237
120
- odoo/addons/account_credit_control/views/res_partner.xml,sha256=PZkyTWFzplLEP2NctPi0j0RJf9RkDSAomjY9R7n4-Go,9189
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.1.0.1.dist-info/METADATA,sha256=qVePLsAxHuRSTY04BjWU2EMaUddlzHSWqO2qRyfsg7o,5963
132
- odoo_addon_account_credit_control-17.0.2.1.0.1.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
133
- odoo_addon_account_credit_control-17.0.2.1.0.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
134
- odoo_addon_account_credit_control-17.0.2.1.0.1.dist-info/RECORD,,
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,,