From 6d85e4d2b3c58e847fea555271c8b7ed01879ac4 Mon Sep 17 00:00:00 2001 From: zainab2097 <149927291+zainab2097@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:39:27 +0300 Subject: [PATCH] Update res_partner.py --- .../dev_membership/models/res_partner.py | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/odex25_sales/dev_membership/models/res_partner.py b/odex25_sales/dev_membership/models/res_partner.py index 699870270..c027c312b 100644 --- a/odex25_sales/dev_membership/models/res_partner.py +++ b/odex25_sales/dev_membership/models/res_partner.py @@ -64,27 +64,29 @@ class PartnerExtended(models.Model): if partner.membership_count == 0: partner.memebership_status = 'No Membership' else: - if partner.is_membership_expire: - partner.memebership_status = 'Membership Expire' + # Prioritize active membership first + if partner.active_membership_id: + partner.memebership_status = partner.active_membership_id.product_id.name else: - if partner.active_membership_id: - partner.memebership_status = partner.active_membership_id.product_id.name - else: - # البحث عن حالة الاشتراك الأخيرة - last_membership = self.env['dev.membership'].search([('partner_id', '=', partner.id)], - order='to_date desc', limit=1) - if last_membership: - if last_membership.state == 'draft': - partner.memebership_status = 'Membership Waitting' - elif last_membership.state == 'cancel': - partner.memebership_status = 'Membership Cancelled' - elif last_membership.state == 'confirm': - if not last_membership.invoice_id and not last_membership.is_free: - partner.memebership_status = 'Membership Waitting invoice' - elif last_membership.invoice_id.payment_state in ['paid', 'in_payment']: - partner.memebership_status = 'Membership Paid' - elif last_membership.invoice_id.payment_state not in ['paid', 'in_payment']: - partner.memebership_status = 'Membership Waitting Paid' + # Search for the last membership + last_membership = self.env['dev.membership'].search( + [('partner_id', '=', partner.id)], order='to_date desc', limit=1) + + if last_membership: + if last_membership.state == 'draft': + partner.memebership_status = 'Membership Waiting' + elif last_membership.state == 'cancel': + partner.memebership_status = 'Membership Cancelled' + elif last_membership.state == 'confirm': + if not last_membership.invoice_id and not last_membership.is_free: + partner.memebership_status = 'Membership Waiting for Invoice' + elif last_membership.invoice_id.payment_state in ['paid', 'in_payment']: + partner.memebership_status = 'Membership Paid' + elif last_membership.invoice_id.payment_state not in ['paid', 'in_payment']: + partner.memebership_status = 'Membership Waiting for Payment' + # If no active or draft memberships exist, check for expiration + if not partner.memebership_status and partner.is_membership_expire: + partner.memebership_status = 'Membership Expire' ##############################################################################################################################################