diff --git a/odex25_sales/dev_membership/data/sequence.xml b/odex25_sales/dev_membership/data/sequence.xml index 22d996421..8ffbe1772 100644 --- a/odex25_sales/dev_membership/data/sequence.xml +++ b/odex25_sales/dev_membership/data/sequence.xml @@ -58,19 +58,9 @@ code model.membership_reminder_email_cron() - - Membership Partner Cancel Notify - - 1 - days - -1 - - - code - model.cancell_membership_reminder_email_cron() - + - Membership User Cancel Notify + Membership User/Partner Cancel Notify 1 days diff --git a/odex25_sales/dev_membership/models/dev_membership.py b/odex25_sales/dev_membership/models/dev_membership.py index e3acd397d..2fb075ae1 100644 --- a/odex25_sales/dev_membership/models/dev_membership.py +++ b/odex25_sales/dev_membership/models/dev_membership.py @@ -233,49 +233,50 @@ class DevMembership(models.Model): tmpl_id.send_mail(membership.id, force_send=True) return True - def cancell_membership_reminder_email_cron(self): - membership_pool = self.env['dev.membership'] - tmpl_id = self.env.ref('dev_membership.dev_cancel_membership_expire') - post_expiry_period = self.env['ir.config_parameter'].get_param('dev_membership.post_expiry_period') - cancel_reason = self.env['ir.config_parameter'].get_param('dev_membership.cancellation_reason') - - if tmpl_id and post_expiry_period: - try: - post_expiry_period = int(post_expiry_period) - except ValueError: - post_expiry_period = 0 # تحديد فترة افتراضية أو التعامل مع الحالة بشكل آخر - - date = fields.Date.today() - relativedelta(days=post_expiry_period) - membership_ids = membership_pool.search([ - ('state', '=', 'expire'), - ('to_date', '<=', date), - ('membership_id', '=', False) - ]) - 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 cancell_membership_reminder_email_cron(self): + # membership_pool = self.env['dev.membership'] + # tmpl_id = self.env.ref('dev_membership.dev_cancel_membership_expire') + # post_expiry_period = self.env['ir.config_parameter'].get_param('dev_membership.post_expiry_period') + # cancel_reason = self.env['ir.config_parameter'].get_param('dev_membership.cancellation_reason') + # + # if tmpl_id and post_expiry_period: + # try: + # post_expiry_period = int(post_expiry_period) + # except ValueError: + # post_expiry_period = 0 # تحديد فترة افتراضية أو التعامل مع الحالة بشكل آخر + # + # date = fields.Date.today() - relativedelta(days=post_expiry_period) + # membership_ids = membership_pool.search([ + # ('state', '=', 'expire'), + # ('to_date', '<=', date), + # ('membership_id', '=', False) + # ]) + # 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 cancell2_membership_reminder_email_cron(self): membership_pool = self.env['dev.membership'] tmpl_id = self.env.ref('dev_membership.dev_cancel_membership_expire2') post_expiry_period = self.env['ir.config_parameter'].get_param('dev_membership.post_expiry_period') cancel_reason = self.env['ir.config_parameter'].get_param('dev_membership.cancellation_reason') + tmpl_id2 = self.env.ref('dev_membership.dev_cancel_membership_expire') - if tmpl_id and post_expiry_period: + if (tmpl_id or tmpl_id2) and post_expiry_period: try: post_expiry_period = int(post_expiry_period) except ValueError: @@ -301,56 +302,59 @@ class DevMembership(models.Model): 'state': 'draft', 'cancel_reason': cancel_reason }) - tmpl_id.send_mail(membership.id, force_send=True) + if tmpl_id: + tmpl_id.send_mail(membership.id, force_send=True) + if tmpl_id2: + tmpl_id2.send_mail(membership.id, force_send=True) return True - def cancell_membership_reminder_email_cron(self): - membership_pool = self.env['dev.membership'] - cancel_reason = self.env['ir.config_parameter'].get_param('dev_membership.cancellation_reason') - tmpl_id = self.env.ref('dev_membership.dev_cancel_membership_expire') - post_expiry_period = self.env['ir.config_parameter'].get_param('dev_membership.post_expiry_period') - tmpl_id2 = self.env.ref('dev_membership.dev_cancel_membership_expire2') - if tmpl_id: - date = self.to_date+ relativedelta(days=int(post_expiry_period)) - 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) - if tmpl_id2: - date = self.to_date+ relativedelta(days=int(post_expiry_period)) - 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_id2.send_mail(membership.id, force_send=True) - return True + # def cancell_membership_reminder_email_cron(self): + # membership_pool = self.env['dev.membership'] + # cancel_reason = self.env['ir.config_parameter'].get_param('dev_membership.cancellation_reason') + # tmpl_id = self.env.ref('dev_membership.dev_cancel_membership_expire') + # post_expiry_period = self.env['ir.config_parameter'].get_param('dev_membership.post_expiry_period') + # tmpl_id2 = self.env.ref('dev_membership.dev_cancel_membership_expire2') + # if tmpl_id: + # date = self.to_date+ relativedelta(days=int(post_expiry_period)) + # 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) + # if tmpl_id2: + # date = self.to_date+ relativedelta(days=int(post_expiry_period)) + # 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_id2.send_mail(membership.id, force_send=True) + # return True def membership_secand_reminder_email_cron(self): membership_pool = self.env['dev.membership'] tmpl_id = self.env.ref('dev_membership.dev_membership_expire_second_reminder_mail_template')