[UPDATE]UPDATE

This commit is contained in:
zainab8585 2024-10-02 15:57:36 +02:00
parent a4a4cd4fd7
commit 6fbbdf969f
2 changed files with 53 additions and 13 deletions

View File

@ -161,7 +161,7 @@ class DevMembership(models.Model):
], limit=1, order="to_date desc")
# Handle sequence generation for new or renewed memberships
sequence_code = 'membership.no.sequence'
self.partner_id.check_active_membership()
if not self.invoice_id and not self.is_free:
raise ValidationError(_('Please Create Membership Invoice'))
if self.invoice_id.payment_state not in ['paid', 'in_payment'] and not self.is_free:
@ -240,7 +240,7 @@ class DevMembership(models.Model):
message_type='notification', #
author_id=self.env.user.partner_id.id,
)
membership.partner_id.check_active_membership()
def membership_reminder_email_cron(self):
membership_pool = self.env['dev.membership']

View File

@ -25,7 +25,7 @@ class Partner(models.Model):
membrship_no = fields.Char('Membership Number')
birth_date = fields.Date(string='Birth Date')
join_date = fields.Date(string='Join Date')
memebership_end_date = fields.Date(string='Memebership End Date',store=True, compute='_compute_membership_end')
memebership_end_date = fields.Date(string='Memebership End Date',store=True, compute='check_active_membership')
age = fields.Integer(string='Age',compute='_compute_age')
employer = fields.Char(string='Employer',)
product_id = fields.Many2one('product.product', string="Membership Type",store=True,compute="check_active_membership")
@ -39,27 +39,67 @@ class Partner(models.Model):
if rec.birth_date:
rec.age = (datetime.today().year-rec.birth_date.year)
def check_active_membership(self):
for partner in self:
partner.active_membership_id = False
partner.product_id = False
partner.is_membership_expire = False
partner.memebership_end_date = False
partner.product_id = False
if partner.membership_count > 0:
# partner._compute_membership_level()
# partner.check_memebership_status()
# partner._compute_membership_end()
c_date = datetime.now().date()
membership_id = self.env['dev.membership'].sudo().search([('partner_id', '=', partner.id),
('state', '=', 'active'),
('from_date', '<=', c_date),
('to_date', '>=', c_date)], order='to_date desc', limit=1)
if membership_id:
partner.active_membership_id = membership_id and membership_id.id or False
else:
partner.is_membership_expire = True
@api.depends('active_membership_id')
last_membership_id = self.env['dev.membership'].sudo().search([
('partner_id', '=', partner.id),
('state', '=', 'active'),
('product_id', '=', membership_id.product_id.id)], order='to_date desc', limit=1)
if last_membership_id:
partner.memebership_end_date = last_membership_id.to_date
partner.product_id = last_membership_id.product_id.id
else:
partner.is_membership_expire = True
last_membership_id = self.env['dev.membership'].sudo().search([
('partner_id', '=', partner.id),
('state', 'in', ('expire','cancel'))], order='to_date desc', limit=1)
if last_membership_id:
partner.memebership_end_date = last_membership_id.to_date
partner.product_id = last_membership_id.product_id.id
@api.depends('active_membership_id')
def _compute_membership_end(self):
for partner in self:
partner.memebership_end_date = False
@ -88,7 +128,7 @@ class Partner(models.Model):
('state', 'in', ('active','expire','cancel'))], order='to_date desc', limit=1)
if membership_id:
partner.membrship_level = membership_id.membrship_level
partner.product_id = membership_id and membership_id.product_id.id or False
@api.depends('active_membership_id')
def check_memebership_status(self):
for partner in self: