1、创建触发器
if ((object_id('tgr_binding_reason', 'tr') is not null))
drop trigger tgr_binding_reason
go
create trigger tgr_binding_reason
on atdnotimecard
after insert
as
declare @personid varchar(200),
@shouldtime varchar(20),
@attenddate varchar(20),
@procstate varchar(20);
select @personid = s.personid,
@shouldtime = s.shouldtime,
@attenddate =s.attenddate,
@procstate = s.procstate
from inserted s;
-- 插入未刷卡原因,如果想不显示在为刷卡报表(未审),可修改 procstate =4
update atdnotimecard
set reasonid = 'f0e9626d-b12f-446a-b40d-995c08d1b099',
procstate =3
where personid = @personid
and attenddate =@attenddate
and shouldtime =@shouldtime;
go
2、插入已审的请假数据:
INSERT INTO dbo.ATDATTENDANCEDATA
(WORKDATE, ATTENDANCETYPE, STARTTIME, PERSONID, ENDTIME, RESULTTIME, DEPARTMENTID, OPTIME, BUSINESSUNITID)
VALUES
('2010-11-02'(@ATTENDDATE), '{未刷卡原因ID:@REASONID}', '09:00'(@SHOULDTIME), '7318ae16-1c50-4203-8716-6a63c84084bc'(@PERSONID), '',1, 'de5906e7-1bb8-40a9-b45e-88c733c3d43a'(@DeptID), GETDATE(), '0')
3、插入原因SQL(请假类型)
INSERT INTO ATDNOCARDREASON
([REASONVALUE],[REASONDESC],[REASONID],[BUSINESSUNITID],[REASONCODE],[ISDELETED])
VALUES
(N'OA导入',N'有请假单', NEWID(),',N'0',N'5',0)
4、员工ID,部门ID
select personid,branchid from psnaccount where employeeid ='GZ0906';