问题现象: | 客户要求年假公式计算如下: 1, 1~3月入职人员从4月1日起当年可享有3天带薪年假(下一年度为5天,以后每年递增1天,最高不超过15天) 2, 4~6月入职人员从7月1日起当年可享受2天带薪年假(下一年度为5天,以后每年度递增1天,最高不超过15天) 3, 7~9月入职人员从10月1日起当年可享受1天带薪年假(下一年度为5天,以后每年度递增1天,最高不超过15天) 4, 10~12月入职人员从下一年度的1月起可享受4天年假 带薪年假最低请假日期为0.5天 设置预警,在10月份设置未休完年假人员的信息 |
问题原因: | |
解决方案: | 您好, 此问题【经测试】现做如下分析与答复: 【解决方案】 问题1:年假的计算公式如下(请自行作入职人员数据测试这个公式是否还有问题,如果有问题邮件反馈哪个条件不对) 如果 YearsBetween(Strtodate( 请假额度.请假期间+'-12-31'), 人员基本信息表.到职日期) >0 那么 如果 YearsBetween(Strtodate( 请假额度.请假期间+'-12-31'), 人员基本信息表.到职日期) +4>15 那么 15 否则 YearsBetween(Strtodate( 请假额度.请假期间+'-12-31'), 人员基本信息表.到职日期) +4 结束 否则 分情况 如果 MonthsBetween( 人员基本信息表.到职日期,iif( DaysBetween( Today(), Strtodate( 请假额度.请假期间+'-12-31'))>=0,Today(), Strtodate( 请假额度.请假期间+'-12-31')))>=9 那么 3 如果 MonthsBetween( 人员基本信息表.到职日期,iif( DaysBetween( Today(), Strtodate( 请假额度.请假期间+'-12-31'))>=0,Today(), Strtodate( 请假额度.请假期间+'-12-31')))>=6 并且 MonthsBetween( 人员基本信息表.到职日期,iif( DaysBetween( Today(), Strtodate( 请假额度.请假期间+'-12-31'))>=0,Today(), Strtodate( 请假额度.请假期间+'-12-31')))<9 那么 2 如果 MonthsBetween( 人员基本信息表.到职日期,iif( DaysBetween( Today(), Strtodate( 请假额度.请假期间+'-12-31'))>=0,Today(), Strtodate( 请假额度.请假期间+'-12-31')))>=3 并且 MonthsBetween( 人员基本信息表.到职日期,iif( DaysBetween( Today(), Strtodate( 请假额度.请假期间+'-12-31'))>=0,Today(), Strtodate( 请假额度.请假期间+'-12-31')))<6 那么 1 否则 0 结束 结束 ------------------- 问题2:考勤年假预警目前版本不支持 ,后续版本考虑增加. |
相关补丁: | |
版本: | 8.90 |
模块: | 薪资管理 |
产品: | 人力资源 |
问题名称: | hr年假公式 |
最后更新: | 2011-09-08 23:24:27 |