odoo10 请假单扩展

# 请假单
class qingjiadan(models.Model):
    WORKFLOW_STATE_SELECTION = [
        ('draft', '草稿'),
        ('confirm', '待人力资源部审批'),
        ('reject', '人力资源部不通过'),
        ('complete', '审批通过')
    ]
    _name = 'bumen.qingjiadan'

    name = fields.Many2one('bumen.yuangong',string="申请人",readonly=True)
    days = fields.Integer(string="天数",required = True,help = "天数只能是整数",states={'draft': [('readonly', False)]},readonly=True)
    startdate = fields.Date(string="开始日期",required = True,states={'draft': [('readonly', False)]},readonly=True)
    reason = fields.Text(string="请假事由",default="",required = True,states={'draft': [('readonly', False)]},readonly=True)
    state = fields.Selection(WORKFLOW_STATE_SELECTION, default='draft', string='状态',readonly=True)

    @api.constrains('days','startdate','reason')
    def _check_something(self):
        for record in self:
            # 当前时间
            currentDate = int(time.strftime("%Y%m%d", time.localtime()))
            # 选择的开始时间
            date = int(record.startdate[0:4] + record.startdate[5:7] + record.startdate[8:10])
            if record.days < 0 or record.days == 0:
                raise ValidationError("天数不能小于等于0")
            if date < currentDate:
                raise ValidationError("开始日期不能早于当前时间")

    @api.multi
    def do_confirm(self):
        self.state = 'confirm'
        # 申请人只能填当前账户的用户名
        bianzhi = self.env['bumen.yuangong'].search([('name', '=', self.env.uid)], limit=1)
        for r in self:
            r.write({'name': bianzhi.id})
        return True

    @api.multi
    def do_reject(self):
        self.state = 'reject'
        return True

    @api.multi
    def do_complete(self):
        self.state = 'complete'
        return True

 

 


  请假单列表
  bumen.qingjiadan
  
    
      
      
      
      
    
  



    请假单详情
    bumen.qingjiadan
    
        
搜索视图 bumen.qingjiadan 普通员工只能看到自己的请假单 [('create_uid','=',user.id)] 人力资源部可以看到所有请假单 [(1,'=',1)]

 

 

 


  
      
      
          请假单工作流
          bumen.qingjiadan
          True
      

      
      
          草稿
          
          dummy
          True
      
      
          待审核
          
          function
          do_confirm()
      
      
          待审核
          
          function
          do_reject()
      
      
          已完成
          
          function
          do_complete()
      

      
      
          
          
          button_confirm_one
      
      
          
          
          button_reject_one
      
      
          
          
          button_complete_one
      

  


 

 

 

 

 

 

 

你可能感兴趣的:(odoo)