From e77d9cd7398b1961493079402c46838409053500 Mon Sep 17 00:00:00 2001 From: zainab2097 <149927291+zainab2097@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:27:30 +0300 Subject: [PATCH] Update dev_membership.py --- .../dev_membership/models/dev_membership.py | 50 ++++++++++++++++--- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/odex25_sales/dev_membership/models/dev_membership.py b/odex25_sales/dev_membership/models/dev_membership.py index 10bd298fd..dfd559510 100644 --- a/odex25_sales/dev_membership/models/dev_membership.py +++ b/odex25_sales/dev_membership/models/dev_membership.py @@ -239,10 +239,20 @@ class DevMembership(models.Model): ('to_date', '<=', date),('membership_id','=',False) ]) for membership in membership_ids: - membership.write({ - 'state': 'cancel', - 'cancel_reason': cancel_reason - }) + # Check if a cancellation request already exists + existing_cancel_request = self.env['membership.cancellation.request'].search([ + ('membership_id', '=', membership.id), + ('state', '=', 'draft') + ], limit=1) + if not existing_cancel_request: + # Create a new cancellation request instead of canceling directly + self.env['membership.cancellation.request'].create({ + 'membership_id': membership.id, + 'member_id': membership.partner_id.id, + 'request_date': fields.Datetime.now(), + 'state': 'draft', + 'cancel_reason': cancel_reason + }) tmpl_id.send_mail(membership.id, force_send=True) return True def cancell2_membership_reminder_email_cron(self): @@ -258,10 +268,20 @@ class DevMembership(models.Model): ('to_date', '<=', date),('membership_id','=',False) ]) for membership in membership_ids: - membership.write({ - 'state': 'cancel', - 'cancel_reason': cancel_reason - }) + m # Check if a cancellation request already exists + existing_cancel_request = self.env['membership.cancellation.request'].search([ + ('membership_id', '=', membership.id), + ('state', '=', 'draft') + ], limit=1) + if not existing_cancel_request: + # Create a new cancellation request instead of canceling directly + self.env['membership.cancellation.request'].create({ + 'membership_id': membership.id, + 'member_id': membership.partner_id.id, + 'request_date': fields.Datetime.now(), + 'state': 'draft', + 'cancel_reason': cancel_reason + }) tmpl_id.send_mail(membership.id, force_send=True) return True @@ -274,6 +294,20 @@ class DevMembership(models.Model): membership_ids = membership_pool.search([('state', '=', 'expire'), ('to_date', '<=', date)]) for membership in membership_ids: + # Check if a cancellation request already exists + existing_cancel_request = self.env['membership.cancellation.request'].search([ + ('membership_id', '=', membership.id), + ('state', '=', 'draft') + ], limit=1) + if not existing_cancel_request: + # Create a new cancellation request instead of canceling directly + self.env['membership.cancellation.request'].create({ + 'membership_id': membership.id, + 'member_id': membership.partner_id.id, + 'request_date': fields.Datetime.now(), + 'state': 'draft', + 'cancel_reason': cancel_reason + }) tmpl_id.send_mail(membership.id, force_send=True) return True def membership_secand_reminder_email_cron(self):