请假系统功能要求
1、 员工可填写请假表单,包括请假人、部门、开始时间、结束时间、天数、类型(病假、事假、年假),请假原因。
2、 员工可填写加班表单,包括加班人、部门、开始时间、结束时间、天数、加班原因。
3、 管理员、审批岗可见所有请假申请并进行批量审批及拒绝。
4、 部门经理只读部门内部请假列表。
5、 请假列表:统计显示请假天数、请假人数;维度(部门、姓名、时间)
6、 功能限制:请假天数最小单位0.5天,只可填0.5倍数。请假开始时间不得低于当前日期3天,调休不可超过加班天数。
7、 调休时间,年假,根据使用情况自动变更同步数据。
8、 表单状态:草稿、审批中、修改中(驳回状态)、审批通过,按钮根据状态显示。
9、 权限规划:管理员拥有最高权限。人力岗拥有所有权限,增删改(审批通过无法删除及修改)、权限配置及审批;部门经理只可见部门内部数据,进行审批;普通员工只可见个人请假数据,进行提交、修改;说明:员工提交单据由部门经理审批,部门经理可指定审批人。
所遇到的问题及解决方法:
1.时间日期问题的计算:用strptime将时间日期类型转换成字符串类型进行计算,将小时转化成上下午计算,解决时间有重复问题,运用数组将所有记录进行遍历比较,选择的时间不能在区间内
2.批量选择服务器动作:涉及到员工权限问题,无法用员工权限用户组将服务器动作隐藏,因此将限制功能写入到按钮里,按钮所对应的方法进行限制判断。
3.权限的配置:定义用户组,赋予权限,记录规则限制当前用户只能看到自己的数据
4.人数和天数的统计总数:在view视图字段后加sum=“字段名”
5.图表视图的显示:参考odoo,graph视图功能模块
6.时间功能上的限制:运用python模型约束,对字段进行相对应的判断
7.数据上的同步变更:将计算的数据放入继承用户个人信息记录表里,通过对继承的用户信息表取数据
8.表单状态工作流按钮显示:在类中定义字段按钮以及按钮所对应方法,view视图中显示按钮(按钮绑定方法),点击按钮同步改变状态
详情代码请见git仓库:https://github.com/xulejun/Leave_System