This commit is contained in:
zainab8585 2024-08-22 12:11:42 +02:00
parent b38845cdcd
commit eaf3f6c0ca
2 changed files with 90 additions and 96 deletions

View File

@ -58,19 +58,9 @@
<field name="state">code</field>
<field name="code">model.membership_reminder_email_cron()</field>
</record>
<record id="cron_cancel_dev_membership_reminder" model="ir.cron">
<field name="name">Membership Partner Cancel Notify</field>
<field name="user_id" ref="base.user_admin"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="doall" eval="False"/>
<field name="model_id" ref="model_dev_membership"/>
<field name="state">code</field>
<field name="code">model.cancell_membership_reminder_email_cron()</field>
</record>
<record id="cron_cancel2_dev_membership_reminder" model="ir.cron">
<field name="name">Membership User Cancel Notify</field>
<field name="name">Membership User/Partner Cancel Notify</field>
<field name="user_id" ref="base.user_admin"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>

View File

@ -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')