odex25_standard/odex25_sales/dev_membership/models/membershib_level.py

34 lines
1.4 KiB
Python

from odoo import models,api, fields,_
class MembershipLevel(models.Model):
_name = 'membership.level'
_description = 'Membership Level'
name = fields.Char(string='Name', required=True)
years = fields.Integer(string='NO Of Years Subscription.', required=True)
min = fields.Integer(string='Maximum', required=True)
max = fields.Integer(string='Maximum', required=True)
color = fields.Char(string='Membership Card Color')
level_no = fields.Char("Number", default=lambda self: self._get_next_levelno(), tracking=True,copy=False)
sequence = fields.Integer(string="Sequence", help="Define the display order")
@api.model
def _get_next_levelno(self):
next_sequence = "/ "
sequence = self.env['ir.sequence'].search(
['|', ('company_id', '=', self.env.company[0].id), ('company_id', '=', False),
('code', '=', 'seq.membership.level')], limit=1)
if sequence:
next_sequence = sequence.get_next_char(sequence.number_next_actual)
return next_sequence
@api.model
def create(self, vals):
company_id = vals.get('company_id', self.default_get(['company_id'])['company_id'])
self_comp = self.with_company(company_id)
if not vals.get('level_no', False):
vals['level_no'] = self_comp.env['ir.sequence'].next_by_code('seq.membership.level') or '/'
return super().create(vals)