From c2baffa4d8f8ec4c16a13ebb1974624eb6f71144 Mon Sep 17 00:00:00 2001 From: Quentin <quentin@l-filament.com> Date: Tue, 17 Oct 2023 09:55:03 +0200 Subject: [PATCH] =?UTF-8?q?[ADD]=20Champ=20Date=20de=20derni=C3=A8re=20fac?= =?UTF-8?q?ture=20d'adh=C3=A9sion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/res_partner.py | 14 ++++++++++++++ views/res_partner.xml | 7 +++++++ 2 files changed, 21 insertions(+) diff --git a/models/res_partner.py b/models/res_partner.py index c653572..3eabbe0 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -46,6 +46,11 @@ class ResPartner(models.Model): ) is_membership_archived = fields.Boolean("Membre archivé") + last_membership_invoice_date = fields.Date( + string="Date de dernière facture d'adhésion", + compute='_compute_last_membership_invoice_date' + ) + # ------------------------------------------------------ # SQL Constraints # ------------------------------------------------------ @@ -96,6 +101,15 @@ class ResPartner(models.Model): if partner.parent_id and not partner.is_company: partner.membership_state = partner.parent_id.membership_state + @api.depends('member_lines') + def _compute_last_membership_invoice_date(self): + for partner in self: + invoices = partner.member_lines.filtered( + lambda line: line.state == 'invoiced' or 'paid' + ).mapped("date") + last_invoice_date = max(invoices, default=False) + partner.last_membership_invoice_date = last_invoice_date + # ------------------------------------------------------ # Onchange / Constraints # ------------------------------------------------------ diff --git a/views/res_partner.xml b/views/res_partner.xml index eefa010..42eea96 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -136,6 +136,13 @@ > <field name="is_membership_archived" widget="boolean_toggle" /> </xpath> + <xpath expr="//field[@name='membership_start']" position="after"> + <field + name="last_membership_invoice_date" + readonly="1" + attrs="{'invisible':[('last_membership_invoice_date','=',False)]}" + /> + </xpath> <xpath expr="//field[@name='member_lines']" position="before"> <hr /> <group> -- GitLab