43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
# -*- coding:utf-8 -*-
|
|
from odoo import models, fields, api, _
|
|
from odoo.exceptions import UserError
|
|
|
|
|
|
class penalty(models.Model):
|
|
_name = "hr.penalty.ss"
|
|
_rec_name = 'name'
|
|
_inherit = ['mail.thread', 'mail.activity.mixin']
|
|
|
|
name = fields.Char(translate=True)
|
|
have_penalty = fields.Boolean()
|
|
code = fields.Char()
|
|
penalty_name = fields.Many2one('hr.penalty.name')
|
|
|
|
# relational fields
|
|
first_time = fields.Many2many('hr.punishment', 'punishment_first_tim')
|
|
second_time = fields.Many2many('hr.punishment', 'punishment_second_time')
|
|
third_time = fields.Many2many('hr.punishment', 'punishment_third_time')
|
|
fourth_time = fields.Many2many('hr.punishment', 'punishment_fourth_time')
|
|
fifth_time = fields.Many2many('hr.punishment', 'punishment_fifth_time')
|
|
company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.company)
|
|
|
|
@api.model
|
|
def create(self, vals):
|
|
seq = self.env['ir.sequence'].next_by_code('hr.penalty.ss') or '/'
|
|
vals['code'] = seq
|
|
return super(penalty, self).create(vals)
|
|
|
|
def unlink(self):
|
|
for item in self:
|
|
records = self.env['hr.penalty.register'].search([('penalty_id', '=', item.id)])
|
|
if records:
|
|
raise UserError(_
|
|
('You Can Not Delete Record There is a related Penalty Employee Name %s') % records.employee_id.name)
|
|
return super(penalty, self).unlink()
|
|
|
|
|
|
class penaltyName(models.Model):
|
|
_name = "hr.penalty.name"
|
|
|
|
name = fields.Char(translate=True)
|