You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

43 lines
1.6 KiB

# -*- coding: utf-8 -*-
from odoo import models, fields, api, _
from odoo.exceptions import UserError
class SessionDetails(models.Model):
_name = 'session.details'
name = fields.Char(string='Name', required=True, copy=False, readonly=True, default=lambda self: _('New'))
customer_id = fields.Many2one('res.partner', string='Customer', required=True)
order_date = fields.Datetime(string='Order Date')
return_date = fields.Datetime(string='Return Date')
type_id = fields.Many2one('session.type', string='Type')
editing_work_id = fields.One2many('editing.works', 'session_id', string='Editing Work')
note_field = fields.Html(string='Comment')
state = fields.Selection([('draft', 'Draft'), ('design', 'Designing'), ('closed', 'Closed')],
string='State', default='draft', required=True)
@api.model
def create(self, vals):
if vals.get('name', 'New') == 'New':
vals['name'] = self.env['ir.sequence'].next_by_code('session.details') or 'New'
return super(SessionDetails, self).create(vals)
@api.multi
def submit_session(self):
self.state = 'design'
@api.multi
def close_session(self):
for rec in self.editing_work_id:
if rec.state != 'completed':
raise UserError(_('All Works Must Be Completed'))
if self.return_date:
self.state = 'closed'
else:
raise UserError(_('Please update your Return Date'))
class SessionType(models.Model):
_name = 'session.type'
name = fields.Char(string='Name')