在使用hr软件过程中发现几点问题,希望版主看过后进行核对并改进,也希望各位同仁看了之后能多多指点,交流一下你们是如何处理类似问题的,详细描述如下: 一、考勤问题 1、考勤月帐统计小数位数导致的误差 a:存在 小时和天数转换时产生的误差 以8小时计算一天为例,比如请假3小时(在考勤记录里输入),那请假天数就是3/8=0.375天;然而系统在考勤月帐统计的时候保留了两位小数,显示成了0.37天;此时若将天数转换成小时就变成了0.37*8=2.96小时;这样就出现了,由于保留2位小数导致的误差; 更比如请假记录中输入3.5小时,3.5/8=0.4375 则月帐统计中显示为0.43天,此时转换成小时就变成了3.44小时; 这显然是不像符合的。 可能大家会问:为什么要转换成小时? 那是因为在考勤月帐统计的时候,请假、调休、加班、出差、打卡的出勤天数、实际的出勤天数 都是互相关联的, 互相影响的。比如该月总天数是30天,那所有这些请假、出勤等天数加起来总不可以大于30天吧? 所以数据的互相转换,核算是必要的。 由于考勤保留两位小数导致考勤月帐统计计算的时候出现的误差应该尽量避免, 其实小数点想要保留多少位,可能每个公司都不一样,那何不将小数点扩展至四位? 要保留多少位由用户自行决定呢? 其实这点很重要因为这关系到数据的准确性。另外薪资的考勤是由月帐导入的,薪资的小数点已经扩展到4位了,那么是否月帐也可以统一跟进呢? 由于不能贴图(可能是我贴不来),那我就将我考勤 计算规则贴出来 给大家看看 int x1; x1= 请假小时 /8; int x2; x2 = 出勤天数 + 出差; 请假天数 = ( 请假小时 -x1 *8 ) /10 +x1; if ( 加班累计 - 调休小时 <=0) 加班工资 = 0 else 加班工资 = ( 加班累计 - 调休小时) *6; 值班补贴 = 值班 *10 + 深夜查岗 *10; 扣款 = (迟到累计 + 早退累计 ) *18; if ( 请假小时 -x1 *8 >0 ) 实际出勤天数 =x2 - 请假天数 -0.199; else 实际出勤天数= x2 - 请假天数 +0.001 夜餐补贴 =3 * ( q1 +b121 +b122 +d1 )+5* ( c1 +f16 + y121 + y122 +s1 + s2 +f20 ) int x3; x3= 调休 *80+0.8125; int x4; x4=x3*0.1; if(x3==x4 *10 +9 ) 调休小时 =x3 *0.1 +0.1 else 调休小时 =x3 *0.1 最终加班 = 加班工资 /6 y代数=30- 实际出勤天数- 请假天数+0.001 int x5; x5 = y代数; 放假 =x5 公式其中的填补误差1: int x3; x3= 调休 *80+0.8125; int x4; x4=x3*0.1; if(x3==x4 *10 +9 ) 调休小时 =x3 *0.1 +0.1 else 调休小时 =x3 *0.1 后面+0.8125 和 +0.1 就是为了填补转换计算误差所补上去的数据 否则 本来是 3.5小时的 就会变成 3.44小时(如上面例子所述) 公式其中的填补误差2: y代数=30- 实际出勤天数- 请假天数+0.001 后面的+0.001 也是为了填补转换的计算误差所补上去的数据 否则 实际出勤天数 有的会出现 7.99天这样的数据,其实是8天 这只是我所列的权宜之计,希望版主从根本进行解决。 2、考勤月帐统计 每月30日、31日的数据不统计 比如 某人A在30日请假 写了请假单,我们将请假单输入 请假记录 请假1小时, 但是考勤月帐统计的时候并没有将此数据统计进去, 某人A的请假仍为0小时,而不是1小时; 只有将该记录写成29日 考勤月帐才统计。 请版主核查。 3、 考勤记录 无放假记录 考勤记录中有请假记录、调休记录、加班记录等,唯独没有放假记录: 放假与请假调休是不一样的概念的;比如 调休 是与加班相挂钩的 加班多少时间 相应的调休多少时间,调休的时间是从加班的时间中扣除的。 请假则是由员工本人提出的申请,一般的请假如事假等,我公司的话请假是没有基本工资的。 再说放假,放假是由公司提出的,因为某个节假日(如国庆、春节等)、公司生产淡季、员工带薪休假等,也就是说由于公司原因导致的房价,我们公司是计算基本工资的。 在制造业特别是淡旺季明显的企业,放假非常普遍。 不知道其它企业是如何进行处理的? 所以我非常建议 版主能增加放假记录,和其他的记录一样,可以统计到考勤月帐。 二、薪资数据准确性问题 1、同时操作,导致表单数据被覆盖导致不准确。 其实是用户账号管理的问题,在操作中导致了薪资数据计算的不准确。举例 比如 张三和李四 同时对 薪资单一进行操作,张三输入 基本工资 李四输入 绩效工资 张三先输完保存后退出,李四慢一点 后保存 退出, 这时候 再登陆进去发现 张三输入的数据都没了 李四的输入的数据 却还有。 导致这个问题出现的原因是 李四后保存 将张三先保持的数据覆盖了。 (张三、李四刚打开的薪资单一两项数据基本工资和绩效工资都是空白的,后来张三 输好后 单据显示 是 基本工资 填好了 但是绩效工资是空的,点保存; 同理 李四 输好后 显示的 基本工资是空的 绩效工资是填好的 后点保存,系统自然认为后一单据为准)所以导致了 数据的不准确, 往往这时 张三会很火,忙了半天全白忙了。 这是一个严重的问题,所以希望在对同一表单进行操作 的时候, 如果有一人已经在操作该表单了,那么厚再打开的就应该显示只读,不能编辑。 或者设置用户权限,一个用户不可以在两台机子上同时登陆,帐号的唯一性。 希望版主引起重视,尽快帮忙解决这个问题,不然我要被他们骂死了。哎,各位朋友你们怎么看呢? 2、联网分机,点保存时显示该计算类型不存在,无法保存 分机经常反应,在他们输入大量数据的时候,点保存,就显示该计算类型不存在,导致输入的数据无法保存,我只能跑下去将他们的数据导出到桌面,然后再回主机 退出server 再登陆 server, 然后再下去 将 导出桌面的数据重新导入,点保存,OK。 这个问题出现好多次了,希望版主尽快解决,刚遇到此问题的时候因未导出保存,导致输入数据丢失,被操作员骂死。。。。。哎 亲爱的版主,一定要解决啊。 写了半天,终于写完了,朋友们你们又没遇到过这些问题?有没更好的处理建议? 敬爱的版主,期待你们尽快解决此类问题。 考勤月帐统计的单位是不一样的
适者生存,不适者被淘汰
感谢 373757383 提出如此详细的意见,我们会努力改进,敬请关注后续版本。
三生石上旧精魂 赏月吟风莫要论 惭愧情人远相访 此身虽异性长存
谢谢斑竹的关注
楼主这个问题在我以前接触跟进的系统中也有存在过,那是用FOXPRO编写的系统,因为小数位的问题引起数据转换出现误差,最后的解决方法是: 1。在原始数据中尽可以保留多的小数位,至天是多少位要根据类型来定了。 2。在显示页面或打印页面则统一保留二位小数位。因为是数据库,保存的只是源文件,其它文件以临时表来存放,只在查看时才进行运算显示或打印
谢谢斑竹和朋友们的关心,因为考勤连接工资关系到员工的切身利益,所以我们都尽可能的将数据准确记录和显示。感谢斑竹的更新!谢谢
登录后方可发贴