34 lines
1.4 KiB
Python
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)
|
|
|