考勤加班时间不满25分钟不算加班, 满25分钟但不超过50分钟,算加班半小时;满50分钟,但不满1小时25分钟,算加班1小时;满1小时25分钟,但不满1小时50分钟,算加班1.5小时。

栏目:u8知识作者:用友来源:用友发布:2024-08-19浏览:2

考勤加班时间不满25分钟不算加班, 满25分钟但不超过50分钟,算加班半小时;满50分钟,但不满1小时25分钟,算加班1小时;满1小时25分钟,但不满1小时50分钟,算加班1.5小时。

考勤实现

加班时间不满25分钟不算加班, 满25分钟但不超过50分钟,算加班半小时;满50分钟,但不满1小时25分钟,算加班1小时;满1小时25分钟,但不满1小时50分钟,算加班1.5小时。

实现方法:自定义考勤算法实现,

一、

首先算法中利用公式实现此逻辑

加班时间不满25分钟不算加班, 满25分钟但不超过50分钟,算加班半小时;满50分钟,但不满1小时25分钟,算加班1小时;满1小时25分钟,但不满1小时50分钟,算加班1.5小时。

image.webp

加班1 加班2 加班3 加班4 都要如此

二、

然后数据库执行sql

Create procedure [dbo].[hr_sp_tm_Day10_ComputeStatus_After]

    @Startdate nvarchar(10), --开始日期

    @Enddate nvarchar(10), --截止日期

    @strPerson nvarchar(50), --人员临时表

    @strDayResult nvarchar(50), --日结果临时表

    @strPeriodResult nvarchar(50), --班段结果临时表

    @strOriCardData nvarchar(50) --刷卡数据临时表

as

declare @strSQL as nvarchar(4000)

set @strSQL=

update o set o.nOvertimeHours=d.nOverTimeHours1

from ‘+@strDayResult+‘ d

join hr_tm_OverTimeresult o

on d.cpsn_num=o.cpsn_num

d.ID_hr_tm_overtime1 = o.uRecordId‘

EXECUTE sp_executesql @strSQL

set @strSQL=

update o set o.nOvertimeHours=d.nOverTimeHours2

from ‘+@strDayResult+‘ d

join hr_tm_OverTimeresult o

on d.cpsn_num=o.cpsn_num

d.ID_hr_tm_overtime2 = o.uRecordId‘

EXECUTE sp_executesql @strSQL

set @strSQL=

update o set o.nOvertimeHours=d.nOverTimeHours3

from ‘+@strDayResult+‘ d

join hr_tm_OverTimeresult o

on d.cpsn_num=o.cpsn_num

d.ID_hr_tm_overtime3 = o.uRecordId‘

EXECUTE sp_executesql @strSQL

set @strSQL=

update o set o.nOvertimeHours=d.nOverTimeHours4

from ‘+@strDayResult+‘ d

join hr_tm_OverTimeresult o

on d.cpsn_num=o.cpsn_num

d.ID_hr_tm_overtime4 = o.uRecordId‘

EXECUTE sp_executesql @strSQL

if @@ERROR <> 0  Goto Err_Handler

return 0

Err_Handler:

return 1

image.webp

执行之后如此再次设置考勤算法

考勤加班时间不满25分钟不算加班, 满25分钟但不超过50分钟,算加班半小时;满50分钟,但不满1小时25分钟,算加班1小时;满1小时25分钟,但不满1小时50分钟,算加班1.5小时。

考勤实现加班时间不满25分钟不算加班, 满25分钟但不超过50分钟,算加班半小时;满50分钟,但不满1小时25分钟,算加班1小时;满1小时25分...
点击下载文档
分享:
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息