From 8b22c618d865ff122fae4c9928e7a5f01239a9da Mon Sep 17 00:00:00 2001 From: zainab2097 <149927291+zainab2097@users.noreply.github.com> Date: Mon, 30 Sep 2024 13:28:06 +0300 Subject: [PATCH] Update dev_membership.py --- .../dev_membership/models/dev_membership.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/odex25_sales/dev_membership/models/dev_membership.py b/odex25_sales/dev_membership/models/dev_membership.py index fdd9f07f4..18d608f3e 100644 --- a/odex25_sales/dev_membership/models/dev_membership.py +++ b/odex25_sales/dev_membership/models/dev_membership.py @@ -324,18 +324,24 @@ class DevMembership(models.Model): invoice_id = self.env['account.move'].create(vals) self.invoice_id = invoice_id and invoice_id.id or False + @api.depends('membership_fees','duration') def _compute_membership_level(self): for record in self: - memberships = self.env['dev.membership'].search([('partner_id', '=', record.partner_id.id),('to_date', '<', record.from_date),('state', 'in', [['expire','active','cancel']])]) - total_fees = sum(membership.membership_fees for membership in memberships) + record.membership_fees - total_duration = sum(membership.duration for membership in memberships)+ record.duration - + total_fees = record.membership_fees + total_duration = record.duration + memberships = self.env['dev.membership'].search([ + ('id', '!=', record.id), + ('partner_id', '=', record.partner_id.id), + ('to_date', '<', record.from_date), + ('state', 'in', [['expire','active','cancel']])]) + for membership in memberships: + total_fees += membership.membership_fees + total_duration += membership.duration level_by_fees = self.env['membership.level'].search([ ('min', '<=', total_fees),('years', '<=', total_duration)], limit=1, order='sequence desc') if level_by_fees: record.membrship_level = level_by_fees - - + def view_invoice(self): if self.invoice_id: ctx = dict(create=False)