odoo10 请假单扩展
生活随笔
收集整理的這篇文章主要介紹了
odoo10 请假单扩展
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
# 請假單
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="天數(shù)",required = True,help = "天數(shù)只能是整數(shù)",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='狀態(tài)',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("天數(shù)不能小于等于0")if date < currentDate:raise ValidationError("開始日期不能早于當前時間")@api.multidef 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.multidef do_reject(self):self.state = 'reject'return True@api.multidef do_complete(self):self.state = 'complete'return True
?
?
<record model="ir.ui.view" id="view_tree_bumen_qingjiadan"><field name="name">請假單列表</field><field name="model">bumen.qingjiadan</field><field name="arch" type="xml"><tree decoration-danger="state =='confirm'" decoration-info="state =='complete'"><field name="name"/><field name="days"/><field name="startdate"/><field name="state"/></tree></field> </record><record id="view_form_bumen_qingjiadan" model="ir.ui.view"><field name="name">請假單詳情</field><field name="model">bumen.qingjiadan</field><field name="arch" type="xml"><form><header><button name="button_confirm_one" states="draft"string="提交" type="workflow" class="oe_highlight"/><button name="button_complete_one" states="confirm"string="批準" type="workflow" class="oe_highlight"groups="bumen.group_hr"/><button name="button_reject_one" states="confirm"string="拒絕" type="workflow" class="oe_highlight"groups="bumen.group_hr"/><field name="state" widget="statusbar"/></header><sheet><group name="group_top" string="請假單詳情"><field name="name"/><field name="days"/><field name="startdate"/></group><notebook><page string="原因"><field name="reason"/></page></notebook></sheet></form></field> </record><record model="ir.ui.view" id="qingjiadan_search_view"><field name="name">搜索視圖</field><field name="model">bumen.qingjiadan</field><field name="arch" type="xml"><search><field name="days"/><field name="name"/><field name="state"/><filter name="state_complete" string="審批通過"domain="[('state', '=', 'complete')]"/><filter name="state_reject" string="人力資源部不通過"domain="[('state', '=', 'reject')]"/><filter name="state_confirm" string="待人力資源部審批"domain="[('state', '=', 'confirm')]"/><filter name="state_draft" string="草稿"domain="[('state', '=', 'draft')]"/><group string="Group By"><filter name="state" string="按審核進度分組"context="{'group_by': 'state'}"/></group><filter name="state_complete_two" string="已完成"domain="[('state', '=', 'complete')]"/></search></field> </record><!--record 規(guī)則 --> <record id="rule_user_bumen_qingjiadan" model="ir.rule"><field name="name">普通員工只能看到自己的請假單</field><field name="model_id" ref="model_bumen_qingjiadan" /><field name="domain_force">[('create_uid','=',user.id)]</field><field name="groups" eval="[(4,ref('base.group_user'))]"/> </record> <record id="rule_user_bumen_qingjiadan_hr" model="ir.rule"><field name="name">人力資源部可以看到所有請假單</field><field name="model_id" ref="model_bumen_qingjiadan" /><field name="domain_force">[(1,'=',1)]</field><field name="groups" eval="[(4,ref('bumen.group_hr','bumen.group_manager'))]"/> </record>?
?
?
<openerp><data><!-- 工作流 --><record id="workflow_bumen_qingjiadan" model="workflow"><field name="name">請假單工作流</field><field name="osv">bumen.qingjiadan</field><field name="on_create">True</field></record><!-- 工作流活動 --><record id="activity_draft_one" model="workflow.activity"><field name="name">草稿</field><field name="wkf_id" ref="workflow_bumen_qingjiadan"/><field name="kind">dummy</field><field name="flow_start">True</field></record><record id="activity_confirm_one" model="workflow.activity"><field name="name">待審核</field><field name="wkf_id" ref="workflow_bumen_qingjiadan"/><field name="kind">function</field><field name="action">do_confirm()</field></record><record id="activity_reject_one" model="workflow.activity"><field name="name">待審核</field><field name="wkf_id" ref="workflow_bumen_qingjiadan"/><field name="kind">function</field><field name="action">do_reject()</field></record><record id="activity_complete_one" model="workflow.activity"><field name="name">已完成</field><field name="wkf_id" ref="workflow_bumen_qingjiadan"/><field name="kind">function</field><field name="action">do_complete()</field></record><!-- 工作流流轉(zhuǎn) --><record id="transition_draft2confirm_one" model="workflow.transition"><field name="act_from" ref="activity_draft_one"/><field name="act_to" ref="activity_confirm_one"/><field name="signal">button_confirm_one</field></record><record id="transition_confirm2reject_one" model="workflow.transition"><field name="act_from" ref="activity_confirm_one"/><field name="act_to" ref="activity_reject_one"/><field name="signal">button_reject_one</field></record><record id="transition_confirm2complete_one" model="workflow.transition"><field name="act_from" ref="activity_confirm_one"/><field name="act_to" ref="activity_complete_one"/><field name="signal">button_complete_one</field></record></data> </openerp>?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的odoo10 请假单扩展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言输入一元二次方程三个系数,C语言程
- 下一篇: 苏州市RFID客运车辆资产管理系统:RF