# 请假单
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.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 规则 -->
<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><!-- 工作流流转 --><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>

odoo10 请假单扩展相关推荐

  1. odoo10 -- 请假模块

    项目github地址,以及odoo绿色版 项目地址:https://github.com/OYZQ/odoo_qingjia 把myaddons文件下的test文件删除就是纯净的odoo绿色版 启动数 ...

  2. 【手写源码-设计模式15】-责任链模式-基于人事请假单工作流场景

    1:主题拆解 ①基本介绍 ②人事请假单工作流模拟 ③责任链模式的优缺点 ④适用场景 ⑤应用实例 ⑥ASP.NET 管道模型 2:基本介绍 责任链模式很像异常的捕获和处理,当一个问题发生的时候,当前对象 ...

  3. odoo第二天,请假单,权限第一天

    controllers 都是注释代码 demo 没有 模块的类文件 models/models.py # odoo 类必要的 from odoo import models, fields, api# ...

  4. Activiti7实战入门一:请假单流程的制定以及代码实现

    目录 目标 1.依赖 2.画流程图 2.1 变量设置 2.2 关于表单属性 3. SpringCloud环境跑流程 3.1 部署流程文件 3.2 新建流程实例 3.3 填写请假申请 3.4 列出待处理 ...

  5. android 请假单界面,请假单_表单设计_OA系统_泛普软件

    请假单设计 设计表单是系统中非常重要的一部分,在设置流程前应该先建立好表单(即流程发起时所需要填写的表单),在菜单栏选择系统->流程设置->表单定义里对表单进行操作. 定义请假单 表单定义 ...

  6. Odoo免费开源ERP高级实施个性化定制请假单示例教程

    Odoo 请假单高级实施个性化定制演练 本节高级实施定制一个简单的请假申请功能,包括创建及编辑请假单,请假单查找.但暂不包括请假审批流程,审批流程将在后续章节开发.本节拟定的请假单包括如下信息: 申请 ...

  7. 一个请假单流程的实现(struts2.1.8+spring2.5+hibernate3集成jbpm4.3

    先说明这个只是一个例子而已,简单的介绍了一些写法,你真的理解了以后完全可以写出比这个更好的代码来. 网上随便找了个请假的流程图,在此先谢谢提供图片的人: 使用jbpm工具画出流程图,中文好像是乱码,所 ...

  8. 钉钉请假单如何下载到电脑打印

    1.登录电脑端钉钉 2.在手机钉钉上依次点击 审批 -> 我发起的 -> 选中对应要下载打印的请假单 -> 打印 3.对应的请假单已发送到电脑,进行下载打印即可 转载于:https: ...

  9. 后台自动将请假单转换为销假单的语句

    /**请假单转换为销假单 billid为请假单的id*/     protected void _reportTo(Context ctx, BOSUuid billId) throws BOSExc ...

最新文章

  1. 数学思想 —— 低维与高维的统一
  2. intellij gradle java_Java 使用 IntelliJ IDEA Gradle创建新项目报错问题解决方法
  3. LeetCode N-Queens
  4. gitlab中的CI
  5. Django加载静态文件
  6. 牛客网--蛇形矩阵(Java)
  7. 关于召开中国医药教育协会医学基因组学与生物信息学专业委员会成立大会暨临床全基因组外显子组家系数据分析培训会的通知...
  8. [luoguP2221] [HAOI2012]高速公路(线段树)
  9. Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
  10. oracle DML错误日志(笔记)
  11. 自顶向下彻底理解 Java 中的 volatile 关键字
  12. CSDN 文章自动显示全文
  13. 前端开发必备之MDN文档
  14. 研发团队绩效评定机制细则
  15. 恒天餐饮管理系统服务器代码,恒天餐饮管理软件使用教程.doc
  16. 为perf4j提供集中式监控项目perf4j-dashboard
  17. 机器学习笔记 十九:由浅入深的随机森林模型之分类
  18. 律师要用到什么计算机技巧,【执业技巧】律师如何优雅地使用苹果电脑?这7款工具很有用...
  19. 年底不要慌,这个EXCEL模板帮你打赢Q4收官战
  20. 史上最全的各种鱼的做法,爱吃鱼的可不要错过哦!

热门文章

  1. 虚拟服务器安装ibm mq,IBM MQ 客户端查看服务端消息的工具 WMQTool
  2. AtCoder ABC 250 总结
  3. 关于组长/leader的一些反省和自我批判
  4. 科普:维基百科与其创始人
  5. matlab ccd驱动,CCD常见驱动比较
  6. Linux中bash文档翻译
  7. c++ 模糊搜索 正则表达式_模糊搜索算法(近似字符串匹配算法)
  8. srsLTE:高度模块化的 3GPP LTE 开源库
  9. 祝愿天下所有的有情人都终成眷属
  10. python3项目源代码下载_GitHub 上适合新手的 Python 开源项目