diff --git a/odex25_sales/dev_membership/models/dev_membership.py b/odex25_sales/dev_membership/models/dev_membership.py index dfd559510..20d9fa86f 100644 --- a/odex25_sales/dev_membership/models/dev_membership.py +++ b/odex25_sales/dev_membership/models/dev_membership.py @@ -141,6 +141,8 @@ class DevMembership(models.Model): self.state = 'confirm' def action_active_membership(self): + # Handle sequence generation for new or renewed memberships + sequence_code = 'membership.no.sequence' 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: @@ -148,14 +150,20 @@ class DevMembership(models.Model): else: # Assuming you have a field to track payment state self.payment_state = self.invoice_id.payment_state - - self.state = 'active' - self.partner_id.product_id = self.product_id.id - # Handle sequence generation for new or renewed memberships - sequence_code = 'membership.no.sequence' - if not self.membership_id or self.state == 'cancel': + if not self.partner_id.membrship_no: # Generate new sequence number if it's the first membership or it's a renewal after cancellation self.partner_id.membrship_no = self.env['ir.sequence'].next_by_code(sequence_code) or _('New') + else: + if self.state=='confirm': + print('if............................') + self.partner_id.membrship_no = self.env['ir.sequence'].next_by_code(sequence_code) or _('New') + print('zain000000000000000000000000',self.partner_id.membrship_no) + self.state = 'active' + self.partner_id.product_id = self.product_id.id + + + + if not self.partner_id.join_date: self.partner_id.join_date = self.from_date @@ -344,7 +352,7 @@ class DevMembership(models.Model): # البحث عن مستوى العضوية بناءً على إجمالي الرسوم level_by_fees = self.env['membership.level'].search([ ('min', '<=', total_fees), - ('max', '>=', total_fees),('years', '>=',total_duration) + ('max', '>=', total_fees),('years', '<=',total_duration) ],order='sequence desc',limit=1) if level_by_fees : record.membrship_level = level_by_fees