Skip to content

Instantly share code, notes, and snippets.

@eLBati
Created July 13, 2021 13:47
Show Gist options
  • Save eLBati/156aae2ef9bdacb010b6165e1cdb488a to your computer and use it in GitHub Desktop.
Save eLBati/156aae2ef9bdacb010b6165e1cdb488a to your computer and use it in GitHub Desktop.
diff --git a/account_invoice_overdue_reminder/data/mail_template.xml b/account_invoice_overdue_reminder/data/mail_template.xml
index 70a2bad..fba1f9e 100644
--- a/account_invoice_overdue_reminder/data/mail_template.xml
+++ b/account_invoice_overdue_reminder/data/mail_template.xml
@@ -17,7 +17,7 @@
<field name="email_from">${object.user_id.email or object.company_id.email}</field>
<field name="email_to">${object.partner_id.email}</field>
<field name="subject">${object.company_id.name} - Overdue invoice reminder n°${object.counter}</field>
- <field name="body_html"><![CDATA[
+ <field name="body_html" type="html">
<div style="margin: 0px; padding: 0px; font-size: 13px;">
<p>Dear customer,</p>
@@ -68,14 +68,14 @@
<p>You will find enclosed the overdue invoices.</p>
% endif
-% if object.counter > 2:
+% if object.severity_crossed():
<p>Despite several reminders, we are disappointed to see that these overdue invoices are still unpaid. In order to avoid legal proceedings, we urge you to paid these overdue invoices in the next days.</p>
% endif
<p>Regards,</p>
</div>
-]]></field>
+</field>
</record>
diff --git a/account_invoice_overdue_reminder/models/company.py b/account_invoice_overdue_reminder/models/company.py
index f9c0950..2a8cff5 100644
--- a/account_invoice_overdue_reminder/models/company.py
+++ b/account_invoice_overdue_reminder/models/company.py
@@ -14,6 +14,10 @@ class ResCompany(models.Model):
string='Default Overdue Reminder Trigger Delay (days)')
overdue_reminder_min_interval_days = fields.Integer(
string='Default Overdue Reminder Minimum Interval (days)', default=5)
+ overdue_reminder_severity_counter = fields.Integer(
+ string='Overdue reminders severity counter', default=2,
+ help="After the number of reminders set here, the messages sent to customers"
+ " will increase severity")
overdue_reminder_interface = fields.Selection(
'_overdue_reminder_interface_selection',
string='Default Overdue Reminder Wizard Interface',
diff --git a/account_invoice_overdue_reminder/models/config_settings.py b/account_invoice_overdue_reminder/models/config_settings.py
index 5c19462..3c385b2 100644
--- a/account_invoice_overdue_reminder/models/config_settings.py
+++ b/account_invoice_overdue_reminder/models/config_settings.py
@@ -15,6 +15,9 @@ class ResConfigSettings(models.TransientModel):
overdue_reminder_min_interval_days = fields.Integer(
related='company_id.overdue_reminder_min_interval_days',
readonly=False)
+ overdue_reminder_severity_counter = fields.Integer(
+ related='company_id.overdue_reminder_severity_counter',
+ readonly=False)
overdue_reminder_interface = fields.Selection(
related='company_id.overdue_reminder_interface', readonly=False)
overdue_reminder_partner_policy = fields.Selection(
diff --git a/account_invoice_overdue_reminder/views/config_settings.xml b/account_invoice_overdue_reminder/views/config_settings.xml
index 5f98685..9db6e90 100644
--- a/account_invoice_overdue_reminder/views/config_settings.xml
+++ b/account_invoice_overdue_reminder/views/config_settings.xml
@@ -39,6 +39,10 @@
<label for="overdue_reminder_min_interval_days" class="col-md-5 o_light_label" string="Default Reminder Minimum Interval"/>
<field name="overdue_reminder_min_interval_days"/> days
</div>
+ <div class="row" name="overdue_reminder_severity_counter">
+ <label for="overdue_reminder_severity_counter" class="col-md-5 o_light_label" string="Overdue reminders severity counter"/>
+ <field name="overdue_reminder_severity_counter"/> reminders
+ </div>
</div>
</div>
</div>
diff --git a/account_invoice_overdue_reminder/views/report_overdue_reminder.xml b/account_invoice_overdue_reminder/views/report_overdue_reminder.xml
index 9e03437..412ece6 100644
--- a/account_invoice_overdue_reminder/views/report_overdue_reminder.xml
+++ b/account_invoice_overdue_reminder/views/report_overdue_reminder.xml
@@ -71,7 +71,7 @@
</table>
<p>If you made a payment for these invoices a few days ago, please ignore this letter.</p>
- <t t-if="o.counter > 2">
+ <t t-if="o.severity_crossed()">
<p>Despite several reminders, we are disappointed to see that these overdue invoices are still unpaid. In order to avoid legal proceedings, we urge you to paid these overdue invoices in the next days.</p>
</t>
diff --git a/account_invoice_overdue_reminder/wizard/overdue_reminder_wizard.py b/account_invoice_overdue_reminder/wizard/overdue_reminder_wizard.py
index 0872c1b..dfc3a8a 100644
--- a/account_invoice_overdue_reminder/wizard/overdue_reminder_wizard.py
+++ b/account_invoice_overdue_reminder/wizard/overdue_reminder_wizard.py
@@ -560,6 +560,12 @@ class OverdueReminderStep(models.TransientModel):
fname = 'overdue_letter-%s' % self.commercial_partner_id.name.replace(' ', '_')
return fname
+ def severity_crossed(self):
+ if self.counter > self.company_id.overdue_reminder_severity_counter:
+ return True
+ else:
+ return False
+
class OverdueReminderEnd(models.TransientModel):
_name = 'overdue.reminder.end'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment